教程中,『退出登录』逻辑不够严谨问题
教材中,『退出登录』的代码如下:
const logout = async (params = {}) => {
let accessToken = wepy.getStorageSync('access_token')
// 调用删除 Token 接口,让 Token 失效
let logoutResponse = await wepy.request({
url: host + '/' + 'authorizations/current',
method: 'DELETE',
header: {
'Authorization': 'Bearer ' + accessToken
}
})
// 调用接口成功,则清空缓存
if (logoutResponse.statusCode === 204) {
wepy.clearStorage()
}
return logoutResponse
}
这段代码逻辑不够严谨,问题如下:
- 获取的 accessToken 可能为空
- 获取的 accessToken 可能过期了
以这两种情况下,去请求 DELETE authorizations/current (刷新和删除 token 这两个方法都需要提交当前的 token),由于是携带的是无效 accessToken,服务器将无法删除 Token,并且会报 500 错误。
[@liyu001989](https://learnku.com/users/3995) [@Summer](https://learnku.com/users/1)
推荐文章: