- session_key和checkSession的疑问
小程序带着code参数请php服务端,php调用微信接口获得session_key和ipenid,并生成一个3rdsession和openid保存在redis中,将3rdsession返回给小程序,小程序将3rdsession保存起来,后续其他的业务接口每次请求都带着这个3rdsession,php服务端通过判断redis中是否有这个3rdsession来判断用户是否登录授权. 问题: 服务器端的redis保存多少时间过期最好呢? 小程序客户端每次在请求服务端业务接口前使用checkSession检测登录是否过期,过期则再调用登录接口登录获取新的3rdsession,然后再带着新的3rdsession继续调用业务接口,请问checkSession是通过什么判断登录是否过期了?是多久过期?
2017-07-12 - wx.checkSession
一、通过 wx.login 获取的 code; 通过服务端换取的 session_key 是有过期时间的,而 checkSession 就是用来检测 session_key 是否过期,如果过期了,就需要重新 login 换取新的 session_key 疑点: 0. checkSession 检测 session_key,客户端需要把session_key缓存在本地?否则如何判断? 1. session_key的有效期是多久? 二、 通过wx.login获取登录态。 通过登录返回的code发送给服务器,服务器用code换取session_key和openid后。 获取session_key后一般使用缓存框架保存登录态,服务端随机生成一串唯一字符串3rdSessionId为key,session_key为value组成键值对并存到缓存当中,缓存时间视情况自行决定。 将3rdSessionId返回给客户端 客户端将3rdSessionId缓存到localStorage中,后续接口从缓存中读取3rdSessionId,传递给服务器;服务器根据3rdSessionId来判断用户身份。 如果服务器根据3rdSessionId在缓存中查找是否存在session_key,如果存在正常执行;如果不存在小程序未登录,重新从第一步流程走。 疑点: 0. 3rdSessionId 在后台设置有效期, 客户端每次请求传3rdSessionId 给后台, 如果值为false, 那就说明有效期失效, 重新登录;这样会有什么问题吗?如果可以跑通,checkSession 是不是多余了?
2017-12-06 - 小程序登录态怎么维护 (3rdsession)
code 拿到后台获取出 openid session_key 如何关联登录态,放回给前台,并维护, 如果使用 key value 键值对, Key 该如何定义。 做过的大佬 解答一下。
2018-07-06