swan.checkSession

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

# 方法参数

Object object

# object参数说明

属性名 类型 必填 默认值 说明
success Function 用户登录态的回调函数,基础库版本 3.120.9(不包括 3.120.9)之前会以 result 的值标识 Session Key 是否失效
fail Function 用户非登录态的回调函数,基础库版本 3.120.9(包括 3.120.9)之后 Session Key 失效/百度 APP 未登录会直接走 fail 回调
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

# 示例

扫码体验
重新加载
请使用百度APP扫码

# 图片示例

# 代码示例 1

在基础库版本 3.120.9(不包括 3.120.9)之前建议按照如下示例使用

    <view class="wrap">
        <button type="primary" bindtap="checkSession">checkSession</button>
    </view>
    
    Page({
        onLoad() {
            this.checkSession();
        },
        checkSession() {
            swan.checkSession({
                success: res => {
                    swan.showModal({
                        title: '',
                        content: '用户在小程序中登陆态有效'
                    });
                    if (!res.result) {
                        swan.showModal({
                            title: '',
                            content: '用户在小程序中登陆态无效,调用swan.login可获取有效Session Key'
                        });
                        swan.login({
                            success: res => {
                                console.log('login success', res);
                            },
                            fail: err => {
                                console.log('login fail', err);
                            }
                        });
                    }
                },
                fail: err => {
                    swan.showModal({
                        title: '',
                        content: '用户在小程序中登陆态无效,请先登陆百度APP'
                    });
                    swan.login({
                        success: res => {
                            console.log('login success', res);
                        },
                        fail: err => {
                            console.log('login fail', err);
                        }
                    });
                }
            });
        }
    });
    

    # 代码示例 2

    在基础库版本 3.120.9(不包括 3.120.9)之后建议按照如下示例使用

      <view class="wrap">
          <button type="primary" bindtap="checkSession">checkSession</button>
      </view>
      
      Page({
          onLoad() {
              this.checkSession();
          },
          checkSession() {
              swan.checkSession({
                  success: res => {
                      swan.showModal({
                          title: '',
                          content: '用户在小程序中 登录态有效'
                      });
                  },
                  fail: err => {
                      swan.showModal({
                          title: '',
                          content: '用户在小程序中 登录态无效,调用swan.login可获取有效 登录态',
                      });
                      swan.login({
                          success: res => {
                              console.log('login success', res);
                          },
                          fail: err => {
                              console.log('login fail', err);
                          }
                      });
                  }
              });
          }
      });
      
      

      # Bug & Tip

      bug: 和其他 API 套用会破坏 swan.login 在页面 onShow 中的调用频次限制,建议在 onShow 中单独使用 swan.login 或在 onLoad 中套用。

      # 错误码

      # Android

      错误码 说明
      201 解析失败,请检查调起协议是否合法
      1001 执行失败

      # iOS

      错误码 说明
      202 解析失败,请检查参数是否正确
      10001 内部错误
      10002 网络请求失败
      10004 用户拒绝(user not login)