小程序
小游戏
企业微信
微信支付
扫描小程序码分享
如题, 小程序授权登陆后 后端通过session_key 生成一个token 然后这个token的时效性是我们后端自己维护的 这种场景下用不到checkSession吧。
8 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我的想法是:
登录小程序服务端返回的token的作用是用来标识当前用户在服务端的登录状态,而session_key的有效性是用户在微信服务器的登录状态。
服务器返回的token,用户服务器对用户做身份认证,是否过期有自己维护。checkSession是检查用户在微信的登录状态是否过期。
当session_key过期,则说明用户在微信侧的登录过期,这是如果用户再请求访问微信侧的接口,是无法成功通过session_key解密数据的。所以为了避免解密数据失败的情况,需要客户端通过checkSession来检查用户在微信侧的登录状态
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
两种方法:
第一种:每次拿授权信息前,都去login拿最新的code找后端获取数据。
第二种:授权时先调用checkSession判断session_key是否失效,失效重新调用wx.login。没失效只给后端iv和data去获取数据,后端照样返回你数据~
综合:第一种每次刷新登录态,不确定是否有其他影响,第二种是我们现在用的~
如果不是直接用的微信那一套的话,这个checksession 已经没有意义了!除非两边的过期时间都一致;
目前没有用到,每次都是拿最新的code去实时换取的
微信授权不是给你一个 session_key 么,这个 session_key 不是没有用的,是可以用来解码加密数据的(如果你的业务中有用到)。然后这个 session_key 是有时效性的,它的时效性就是通过 checkSession 来检查的。因此如果 checkSession 说登录失效了,那么通常你就需要重新进行微信授权,更新 session_key。
// api是简单封装过的,success 是 resolved,fail 是 rejected;
api.promisify('checkSession').then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
要是获取手机号,这个 session_key 是必须的,这个两边的过期时间都一致是个很难的问题,反正我是改了很多版本后,采用了入库加比对,不知道其他大佬是怎么解决的,求赐教。
我们也是,在自行维持一套 token 鉴权机制的情况下这个 session_key 是没什么用。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我的想法是:
登录小程序服务端返回的token的作用是用来标识当前用户在服务端的登录状态,而session_key的有效性是用户在微信服务器的登录状态。
服务器返回的token,用户服务器对用户做身份认证,是否过期有自己维护。checkSession是检查用户在微信的登录状态是否过期。
当session_key过期,则说明用户在微信侧的登录过期,这是如果用户再请求访问微信侧的接口,是无法成功通过session_key解密数据的。所以为了避免解密数据失败的情况,需要客户端通过checkSession来检查用户在微信侧的登录状态
两种方法:
第一种:每次拿授权信息前,都去login拿最新的code找后端获取数据。
第二种:授权时先调用checkSession判断session_key是否失效,失效重新调用wx.login。没失效只给后端iv和data去获取数据,后端照样返回你数据~
综合:第一种每次刷新登录态,不确定是否有其他影响,第二种是我们现在用的~
如果不是直接用的微信那一套的话,这个checksession 已经没有意义了!除非两边的过期时间都一致;
目前没有用到,每次都是拿最新的code去实时换取的
微信授权不是给你一个 session_key 么,这个 session_key 不是没有用的,是可以用来解码加密数据的(如果你的业务中有用到)。然后这个 session_key 是有时效性的,它的时效性就是通过 checkSession 来检查的。因此如果 checkSession 说登录失效了,那么通常你就需要重新进行微信授权,更新 session_key。
// api是简单封装过的,success 是 resolved,fail 是 rejected;
api.promisify('checkSession').then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
要是获取手机号,这个 session_key 是必须的,这个两边的过期时间都一致是个很难的问题,反正我是改了很多版本后,采用了入库加比对,不知道其他大佬是怎么解决的,求赐教。
另外,还有session_key已过期,wx.checkSession还是会返回success,导致后续的getPhoneNumber解密失败
我们也是,在自行维持一套 token 鉴权机制的情况下这个 session_key 是没什么用。