wx.checkSession(OBJECT)
通过上述接口获得的用户登录态拥有一定的时效性。用户越久未使用小程序,用户登录态越有可能失效。反之如果用户一直在使用小程序,则用户登录态一直保持有效。具体时效逻辑由微信维护,对开发者透明。开发者只需要调用wx.checkSession接口检测当前用户登录态是否有效。登录态过期后开发者可以再调用wx.login获取新的用户登录态。
OBJECT参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数,登录态未过期 |
fail | Function | 否 | 接口调用失败的回调函数,登录态已过期 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.checkSession({ success: function () { //session 未过期,并且在本生命周期一直有效 }, fail: function () { //登录态过期 wx.login() //重新登录 } })
登录态维护
通过 wx.login
获取到用户登录态之后,需要维护登录态。
开发者要注意不应该直接把 session_key、openid 等字段作为用户的标识或者 session 的标识,而应该自己派发一个 session 登录态(请参考登录时序图)。对于开发者自己生成的 session,应该保证其安全性且不应该设置较长的过期时间。session 派发到小程序客户端之后,可将其存储在 storage ,用于后续通信使用。
通过 wx.checkSession
可以检测用户登录态是否失效。并决定是否调用 wx.login
重新获取登录态
登录时序图
Bug & Tip
bug
: iOS/Android
6.3.30
,在 App.onLaunch 调用 wx.login 会出现异常;