精华内容
下载资源
问答
  • 2019-02-19 碰到一个登录后从token取不到tokenId的问题,debug后没有发现什么异常; 2019-02-20 解决ing…

    2019-02-19
    碰到一个登录后从token取不到tokenId的问题,debug后没有发现什么异常;
    问题在于本身是通过token用来进行数据隔离,然后接口是通过token来查询数据的,在添加数据时也是同理,这次是在添加数据时发现数据所属token值未加上,所以也查不到;
    2019-02-20
    解决ing…
    今天在改了一些其他bug之后,再次回来看这个问题,找了一下数据库,发现了问题所在;

    发现在数据库中,可以取到tokenId的账户的用户类型与我新建的用户类型不相同,看了一下此类型的枚举,发现原来新添加的用户是普通用户的类型,然而只有管理员用户才可以取到tokenId;

    找到问题所在后,开始查看代码,发现我写的创建用户的接口并没有什么问题;
    在红框内这里插入图片描述
    红框内是用户类型,是admin用户没错,所以不是创建用户的接口有问题,所以我开始查看框架内其他人的创建token接口;
    最后发现在最后创建时,userType数据被写死固定了:下图
    在这里插入图片描述
    我把原来的代码注释掉,改为从参数中取类型数据,再次在postman上走接口,发现这次没有任何问题了;

    问题不复杂,但是确实找了很久,解决过程记录下来,以后可能就不会忘记了;

    展开全文
  • vue项目,登录后进入主页,向服务端请求数据时,服务端返回message:‘token值无效’ 错误原因 没有设置axios请求拦截,应该在每一个请求的请求头中将token传递给服务器。 设置axios请求 写在main.js中 axios....

    错误描述
    vue项目,登录后进入主页,向服务端请求数据时,服务端返回message:‘token值无效’
    错误原因
    服务器端根据请求传递过来的token值来判断你是谁,没有传递token值就会保存,可以在main.js文件中设置axios请求拦截,使得每一个请求的请求头中都有token传递。
    设置axios请求
    写在main.js中

    axios.interceptors.request.use(function (config) { 
      config.headers['Authorization'] = window.sessionStorage.getItem('token')
      return config
    })
    
    展开全文
  • 如何获取变量token

    千次阅读 2020-10-29 10:59:28
    4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 LocalStorage 里,客户端每次向服务端请求资源的时候需要带着服务端签发的 Token 5.服务端收到请求,然后去验证客户端请求里面带着的 Token,如果...

    一.什么是token

    1.客户端使用用户名跟密码请求登录
    2.服务端收到请求,去验证用户名与密码
    3.验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
    4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 LocalStorage 里,客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
    5.服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
    6.web/APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为token,存储到服务器中,并返回 token 到web/APP,以后web/APP请求时凡是需要验证的地方都要带上该 token,然后服务器端验证 token,成功返回所需要的结果,失败返回错误信息,让他重新登录。其中服务器上 token 设置一个有效期,每次web/APP请求的时候都验证token 和有效期。
    二、如何获取token的值,进行接口测试

    接口测试的工具大部分都可以获取登录之后返回的token值,这里给大家讲解如何用apipost获取token值的方法。 先打开apipost,进行登录接口的编写,然后获取token的值。
    在这里插入图片描述接着我们来引用这个token的值,引用token的值需要我们先设置环境变量
    在这里插入图片描述
    在这里插入图片描述
    环境选择为新建好的环境,在引用url地址。引用格式为{{变量名}}
    在这里插入图片描述在去设置后执行脚本获取token值,“token”是参数名称,response.json.token的意思是返回的json数据中的token值。
    在这里插入图片描述
    这些都设置好之后,就可以引用token了,token引用的方法和环境变量设置的url引用方法一样也是{{token}}
    在这里插入图片描述三、接口流程测试。

    token值引用好之后,就可以进行接口流程化测试了。
    在这里插入图片描述选择接口点击添加到流程测试中在这里插入图片描述在这里插入图片描述
    进行流程测试
    在这里插入图片描述
    在这里插入图片描述
    这就是如何获取token值进行接口流程测试的步骤了。
    工具下载地址:https://www.apipost.cn/?dt=20201029

    展开全文
  • Token

    千次阅读 2018-04-26 14:35:16
    验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里 客户端每次向服务端请求资源的时候需要带着服务端签发的 ...

     

    • 客户端使用用户名跟密码请求登录
    • 服务端收到请求,去验证用户名与密码
    • 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
    • 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
    • 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
    • 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

     

    1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

     

    2、Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

    3、使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

     

    二、如何使用Token?

    1、用设备号/设备mac地址作为Token(推荐)

    客户端:客户端在登录的时候获取设备的设备号/mac地址,并将其作为参数传递到服务端。

    服务端:服务端接收到该参数后,便用一个变量来接收同时将其作为Token保存在数据库,并将该Token设置到session中,客户端每次请求的时候都要统一拦截,并将客户端传递的token和服务器端session中的token进行对比,如果相同则放行,不同则拒绝。

    分析:此刻客户端和服务器端就统一了一个唯一的标识Token,而且保证了每一个设备拥有了一个唯一的会话。该方法的缺点是客户端需要带设备号/mac地址作为参数传递,而且服务器端还需要保存;优点是客户端不需重新登录,只要登录一次以后一直可以使用,至于超时的问题是有服务器这边来处理,如何处理?若服务器的Token超时后,服务器只需将客户端传递的Token向数据库中查询,同时并赋值给变量Token,如此,Token的超时又重新计时。

    2、用session值作为Token

    客户端:客户端只需携带用户名和密码登陆即可。

    客户端:客户端接收到用户名和密码后并判断,如果正确了就将本地获取sessionID作为Token返回给客户端,客户端以后只需带上请求数据即可。

    分析:这种方式使用的好处是方便,不用存储数据,但是缺点就是当session过期后,客户端必须重新登录才能进行访问数据。

    三、使用过程中出现的问题以及解决方案?

    刚才我们轻松介绍了Token的两种使用方式,但是在使用过程中我们还出现各种问题,Token第一种方法中我们隐藏了一个在网络不好或者并发请求时会导致多次重复提交数据的问题?
     

    >>>>>>>>>>>>>>

    setInterval(function(){ $(".login_Btn").click() }, 1000);

     

    微信:小程序

     

    appId(应用唯一标识,在微信开放平台提交应用审核通过后获得)
    secret(应用密钥AppSecret,在微信开放平台提交应用审核通过后获得)
    code
    grant_type(authorization_code)参数

    =================================================

    小程序登录登录凭证校验
    
    https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
    openidstring用户唯一标识
    session_keystring会话密钥
    unionidstring用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回,详见 UnionID 机制说明
    errcodenumber错误码
    errmsgstring错误信息
    e:->jwt
    $wx=[
    'openid'=>'onbAZ4xqJjYPtPCz-O6DWmHN7EpA',
    'uniqid'=>'o9VTO0rrZOrGk6BTJOYicrJmIpIk',
    'session_key'=>'tiihtNczf5v6AKRyjwEUhQ=='
    ];
        $base_header=eyJhbGdvcml0aG0iOiJTSEEyNTYiLCJ0eXBlIjoiSldUIn0
        set    Array
            (
            [algorithm] => SHA256
            [type] => JWT
            )
    
        $payload:
            Array
            (
                [issuer] => StockSmallProcedure
                [issue_time] => 1556175091
                [expire_time] => 1558767091
                [uniqid] => a026700d9bb2d712d7bb98b406d6ec04 //md5(uniqid('JWT') . time()), //唯一标识
                [uid] => 6
                [session_key] => tiihtNczf5v6AKRyjwEUhQ==
            )
            =>base64Encode($payload)
        $base_payload=eyJpc3N1ZXIiOiJTdG9ja1NtYWxsUHJvY2VkdXJlIiwiaXNzdWVfdGltZSI6MTU1NjE3NTA5MSwiZXhwaXJlX3RpbWUiOjE1NTg3NjcwOTEsInVuaXFpZCI6ImEwMjY3MDBkOWJiMmQ3MTJkN2JiOThiNDA2ZDZlYzA0IiwidWlkIjoxNCwic2Vzc2lvbl9rZXkiOiJ0aWlodE5jemY1djZBS1J5andFVWhRPT0ifQ
            =>set_signature($payload):base64Encode(hash_hmac('sha256', json_encode($params), config('applet.app_secret')))
        $base_sign: IjdjNGQ0N2YzODhiNWYzY2RhZmU5ZjU5ODY3NjYyZjRmYWU4NzBhODVmNzM0YWZiODYyMzgzN2ZmZDNkOTg1Mzgi
    
        token=join('.', [$base_header, $base_payload, $base_sign])
        ='eyJhbGdvcml0aG0iOiJTSEEyNTYiLCJ0eXBlIjoiSldUIn0.eyJpc3N1ZXIiOiJTdG9ja1NtYWxsUHJvY2VkdXJlIiwiaXNzdWVfdGltZSI6MTU1NzM5MTAwNiwiZXhwaXJlX3RpbWUiOjE1NTk5ODMwMDYsInVuaXFpZCI6ImViYjBjNWM5MDVhZjFkNjY1MDhkZWM4ODU5ODQ2YWQ2IiwidWlkIjo2LCJzZXNzaW9uX2tleSI6InRpaWh0TmN6ZjV2NkFLUnlqd0VVaFE9PSJ9.Ijg1ODFkNzJmNzgzMGYyZGU1OTk4NjAyOWFhM2NhY2JmYzk0ZjJmMGIwYzYwZTZjZmQ4ZDg5YzU0NGYzYWM0Mjki'

    =================================================

    /**
     * 验证token
     */
    public function veriftJwt($data = '')
    {
        if (!$data) return false;
        if (substr_count($data, '.') < 2)
            return false;
        //拆分数据s
        list($header, $payload, $sign) = explode('.', $data);
        //验证三个参数
        if (!$header || !$payload || !$sign) return false;
        //验证头部信息
        $header = self::base64Decode($header);
        if (!$header['algorithm']) return false;
        $payload = self::base64Decode($payload);
        //验证签名
        $resultSign = self::set_signature($payload);
        if ($resultSign != $sign)
            return false;
        //验证签发时间大于服务器时间s
        if ($payload['issue_time'] && $payload['issue_time'] > time())
            return false;
        //验证过期时间
        if ($payload['expire_time'] && $payload['expire_time'] < time())
            return false;
        return $payload;
    }
    

    // db 验证

    =>

    Array
    (
        [id] => 6
        [applet_openid] => **************
        [public_openid] => **************
        [nickname] => 脚步
        [unionid] => ***************
        [avatarUrl] => img
        [session_key] => ************
    )

     

    ===================================================================

    微信小程序与微信公众号同一用户登录:
    微信小程序得到openid,然后通过openID得到用户的唯一标识,用户得以登录,
    然而,当我们调用微信公众号也同样的到openid,同一用户两个不同的openid,不能区分是否为同一用户,
    然后发现无论调用微信小程序还是微信公众号同一个用户的到unionid是相同的,所以我们就用unionid来区分是否为同一用户。

     

    全局Access Token


    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    {
        "access_token": "NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjbLc_KAA092cxkmpj5FpuqNO0IL7bB0Exz5s5qC9Umypy-rz2y441W9qgfnmNtIZWSjSQ",
        "expires_in": 7200
    }

     

    网页授权access_token和普通access_token的区别

    1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;

    2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

     

    用户管理-公众号获取用户基本信息(UnionID机制)


    https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID

    {
    "subscribe": 1,
    "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
    "nickname": "Band",
    "sex": 1,
    "language": "zh_CN",
    "city": "广州",
    "province": "广东",
    "country": "中国",
    "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
    "subscribe_time": 1382694957,
    "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
    "remark": "",
    "groupid": 0,
    "tagid_list":[128,2],
    "subscribe_scene": "ADD_SCENE_QR_CODE",
    "qr_scene": 98765,
    "qr_scene_str": ""
    }

     

    网页授权

    1 第一步:用户同意授权,获取code

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE

     

    2 第二步:通过code换取网页授权access_token

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
    {
    "access_token":"ACCESS_TOKEN",
    "expires_in":7200,
    "refresh_token":"REFRESH_TOKEN", // 参数code是一次性的参数,需要重新获取,而重新获取就需要用户再一次登录才能获取code
    "openid":"OPENID",
    "scope":"SCOPE"
    }
    

    3 第三步:刷新access_token(如果需要)

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
    {
    "access_token":"ACCESS_TOKEN",
    "expires_in":7200,
    "refresh_token":"REFRESH_TOKEN",
    "openid":"OPENID",
    "scope":"SCOPE"
    }

    4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

    https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
    {
        "openid":" OPENID",
        " nickname": NICKNAME,
        "sex":"1",
        "province":"PROVINCE"
        "city":"CITY",
        "country":"COUNTRY",
        "headimgurl":                  "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
        "privilege":[ "PRIVILEGE1" "PRIVILEGE2"     ],
        "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
    }

    5 附:检验授权凭证(access_token)是否有效

    https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
    { "errcode":0,"errmsg":"ok"}
    

    ==================================================================

    网页开发:微信JS-SDK说明文档

    微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包。

    通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

    GET:https://api.weixin.qq.com/cgi-bin/ticket/getticket

    jsapi_ticket是公众号用于调用微信JS接口的临时票据

    展开全文
  • 一、什么是token? 简单的说token是由服务端生成的一串字符串,作为客户端向服务端请求的一个标识。在前端使用用户名/密码向服务端发送请求认证,服务端认证成功,那么在服务端会会返回token给前端,前端在每次请求...
  • springboot拦截器无法获取token值的问题问题描述导致该问题的原因解决办法 问题描述 前后端分离项目使用token进行登录及接口校验,出现在后端拦截器中无法获取前端请求头中的token值,导致所有前端请求校验无法通过 ...
  • python接口自动化4-常用取token值方法

    千次阅读 2019-11-23 20:41:00
    不过在哪里我们也是能实现自动化api测试的,我们都知道token一般都会在这几个地方: 1.返回参数的token; 2.返回头部信息中; 3.上一个页面中; 二、取 token 常用方法 1.在返回参数中,如json: R_json = { ...
  • 在main.js中加上以下代码 // 添加请求拦截器 axios.interceptors.request.use(config ...//如果存在token值,将token放入请求头‘Authorization’中 if(store.state.token.token){ config.headers.common[‘Authorizati
  • vue前端利用localStorage存储token值并放到请求头headers实例 之前在关于登录接口的一篇博客里,我有提到过token,在这篇博客里我会介绍token在前端如何存取,同时把它放在请求头里获取数据。 1、关于token 为...
  • Jmeter测试带token值报500解决办法

    千次阅读 2020-07-10 14:55:06
    刚看到此错误我马上就想到是不是token值没有加,然后我去浏览器打开开发者工具,在network下找到了token值 然后我兴冲冲的把他添加到了信息头,再次运行,还是报相同的错误 我当时以为是我放的位置不对,然后把token...
  • // http request 请求拦截器,有token值则配置上token值 axios.interceptors.request.use( config => { if (token) { // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上...
  • [微信小程序]消息推送配置Token令牌错误@Author GQ 2017年07月26日 本想在微信小程序中接入上传图片到阿里云功能,小程序中查询很多资料还是没能将图片转成流上传, 所以无奈只能借助小程序官方API中客服转发功能上传...
  • !... ...各种折腾,设置测试了access_token值,显示是错误码40164,IP没有加入白名单,可是加入了白名单后,还是不行啊,检查结果又出来 一串看不懂的,却又显示通过? 一头雾水中,请高人指点
  • SpringBoot2中添加拦截器验证token值

    千次阅读 2020-05-08 14:13:44
    token是无状态的,帮助你验证用户是否具有查询api的权限,一般登录后即可生成。 拦截器下,解决swagger-ui的访问 拦截器 SpringBoot的拦截器,继承HandlerInterceptor即可,重写preHandle 说明: IAuthService 是...
  • 即登陆时,要传一个登陆后的token才能访问的。 那这个怎么设置,才可以让所有接口都允许登陆后访问呢。 解决办法如下: @Configuration @EnableWebMvc @EnableSwagger2 public class SwaggerConfig { @Bean ...
  • 给刚接触微信开发的司机们避避坑,微信获取access_token时,返回值为null,并且没有返回错误,这令我搞了好一会儿,你不妨先查看 curl_exec( ch)的返回值是否为false,若是的话加一句curlsetopt(ch )的返回值是否为...
  • asp.net WebAPI Token Oauth2.0授权自定义返回结果(包括登录正确返回,登录失败返回)。 详细参考:https://blog.csdn.net/u013546115/article/details/105580532
  • 最后找到此项目的路由处,经过多次测试,解决问题,也确定了问题原由,原来是:路由中path的不能以小写m开头,否则就会报上面的错误。 在此写下报错环境及条件: vue版本:2.5.2 vue-router:3.0
  • tp5 生成token 验证token 解密token

    千次阅读 2020-05-22 18:37:49
    生成Token /** * 创建 token * @param array $data 必填 自定义参数数组 * @param integer $exp_time 必填 token过期时间 单位:秒 例子:7200=2小时 * @param string $scopes 选填 token标识,请求接口的token ...
  • 消息推送配置Token令牌错误@Author GQ 2017年07月26日 本想在微信小程序中接入上传图片到阿里云功能,小程序中查询很多资料还是没能将图片转成流上传, 所以无奈只能借助小程序官方API中客服转发功能上传素材间接实现:...
  • token配置

    2020-06-01 10:42:26
    //根据api接口获取token var url = this.HOST + "/session"; this.$axios.post(url, { username: this.loginForm.username, password: this.loginForm.pass }).then(res => { // console.log(res.data); this.$...
  • 在前端登录请求时,不但带来了参数还含有token,至于这个token是否真实,后端要根据前端传过来的参数生成的token,进行验证 后端对前端请求拦截 XSRFHandlerInterceptor package a.b.c.common.interceptor; ...
  • 对其获取数据以及token的封装

    千次阅读 2020-12-30 15:26:45
    if(token){ //将token设置到请求头 config.headers.Authorization =token; } return config; },err=>{ return err; }) // 响应拦截 instance.interceptors.response.use(res=>{ return res.data; },err=>{ // 统一...
  • 需要准备的东西Vue+axios+Vuex+Vue-router ...//根据api接口获取token var url = this.HOST + "/session"; this.$axios.post(url, { username: this.loginForm.username, password: this.loginForm.p...
  • vuex存储token

    千次阅读 2018-06-21 15:06:41
    1.在login.vue中通过发送http请求获取token[javascript] view plain copy//根据api接口获取token var url = this.HOST + "/session"; this.$axios.post(url, { username: this.loginForm....
  • 浅析token

    千次阅读 2018-08-14 16:04:22
    get_token的功能是通过python的BeautifulSoup库从html页面中抓取user_token,为了方便展示,这里设置只尝试10次。 这样就可以顺利爆破DVWA的登陆页面了,这才是DVWA提供的爆破模块 这里分享两个万能...
  • uni-app 保存和获取 token

    千次阅读 2021-01-11 19:43:26
    使用 uni-app 提供的数据缓存 api uni.setStorageSync(‘token’, ‘res.data.data’); 保存token login() { uni.request({ url:this.apiUrl+"api/index/login", method:'POST', // 传参 data:{ ...
  • 打开jeecg官方文档进行redis配置 在这里进行配置! [在这里插入图片描述](https://img-blog.csdnimg.cn/20200502002712330.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9...
  • 最近做移动端的h5,登录之后携带token跳到列表页面,请求列表接口,但是后端却一直报错,提示token校验失败. 最后发现后端接到的sessionId和token不一致导致的,查看资料经过无数奋战才知道,原来是跨域要想带上cookie....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 91,509
精华内容 36,603
关键字:

token值错误