swan.checkSession

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

方法参数

Object object

object参数说明

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

示例

扫码体验

swan.checkSession - 图1请使用百度APP扫码

图片示例

swan.checkSession - 图2

swan.checkSession - 图3

swan.checkSession - 图4

代码示例 1 :

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

在开发者工具中预览效果

  • 在 js 文件中
  1. swan.checkSession({
  2. success: function (res) {
  3. swan.showModal({
  4. title: '',
  5. content: '用户在小程序中 登录态有效'
  6. });
  7. if(!res.result){
  8. swan.showModal({
  9. title: '',
  10. content: '用户在小程序中 登录态无效,调用swan.login可获取有效Session Key',
  11. });
  12. swan.login({
  13. success: res => {
  14. console.log('login success', res);
  15. },
  16. fail: err => {
  17. console.log('login fail', err);
  18. }
  19. });
  20. }
  21. },
  22. fail: function (err) {
  23. swan.showModal({
  24. title: '',
  25. content: '用户在小程序中 登录态无效,请先 登录百度APP',
  26. });
  27. swan.login({
  28. success: res => {
  29. console.log('login success', res);
  30. },
  31. fail: err => {
  32. console.log('login fail', err);
  33. }
  34. });
  35. }
  36. });

代码示例 2 :

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

在开发者工具中预览效果

  • 在 js 文件中
  1. Page({
  2. swan.checkSession({
  3. success: function (res) {
  4. swan.showModal({
  5. title: '',
  6. content: '用户在小程序中 登录态有效'
  7. });
  8. },
  9. fail: function (err) {
  10. swan.showModal({
  11. title: '',
  12. content: '用户在小程序中 登录态无效,调用swan.login可获取有效 登录态',
  13. });
  14. swan.login({
  15. success: res => {
  16. console.log('login success', res);
  17. },
  18. fail: err => {
  19. console.log('login fail', err);
  20. }
  21. });
  22. }
  23. });
  24. });

Bug & Tip

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

错误码

Android

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

iOS

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