wx.checkSession()在哪里调用
时间: 2024-03-08 12:45:34 浏览: 75
wx.checkSession()方法可以在小程序的任何页面或组件中调用,通常情况下建议在App()函数的onLaunch()生命周期方法中调用。这样可以确保在小程序启动时就对session进行检测,避免在其他页面或组件中需要使用用户信息时再去检测session,影响用户体验。具体步骤如下:
1. 在app.js文件中,将wx.checkSession()方法封装成一个全局函数checkSession(),代码示例如下:
```javascript
// app.js
App({
// 封装checkSession方法
checkSession: function() {
wx.checkSession({
success: function() {
// session未过期,并且在本生命周期一直有效
console.log('session未过期');
},
fail: function() {
// session过期了,需要重新登录
wx.login({
success: function (res) {
if (res.code) {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
console.log(res.code);
// 调用后台接口,获取新的session_key
wx.request({
url: 'https://example.com/api/login',
data: {
code: res.code
},
success: function(res) {
// 更新本地缓存中的session_key
wx.setStorageSync('session_key', res.data.session_key);
}
});
} else {
console.log('登录失败!' + res.errMsg)
}
}
});
}
})
}
// ...
})
```
2. 在App()函数的onLaunch()生命周期方法中,调用checkSession()方法:
```javascript
// app.js
App({
onLaunch: function() {
// 检测session是否过期
this.checkSession();
},
// ...
})
```
这样,在小程序启动时就会检测session是否过期,如果session过期了,则会重新登录获取新的session_key。如果不想在小程序启动时检测session,也可以在其他需要使用用户信息的页面或组件中调用checkSession()方法。
阅读全文