wx.checkSession-检测当前用户登录态是否有效。登录态过期后开发者可以再调用wx.login获取新的用户登录态

wx.checkSession(OBJECT)

通过上述接口获得的用户登录态拥有一定的时效性。用户越久未使用小程序,用户登录态越有可能失效。反之如果用户一直在使用小程序,则用户登录态一直保持有效。具体时效逻辑由微信维护,对开发者透明。开发者只需要调用wx.checkSession接口检测当前用户登录态是否有效。登录态过期后开发者可以再调用wx.login获取新的用户登录态。


OBJECT参数说明:

参数名类型必填说明
successFunction接口调用成功的回调函数,登录态未过期
failFunction接口调用失败的回调函数,登录态已过期
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)


示例代码:

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 会出现异常;