我觉得在云开发环境下,openid直接明文传输缓存到客户端作为登录态,应该是安全可靠可信的?wx.checkSession()感觉用处不大?
设定好缓存过期时间,缓存时间内不调用云函数,减少云开发成本,大家帮忙看看以下逻辑有没有问题?
login: async function() {
const info = wx.getStorageSync('info')
if (info) {
const diff = this.time.diff(info.time,'h')//计算缓存时间
if (diff < 24) {
//缓存有效,读取缓存
return info
} else {
//缓存过期,清理缓存
wx.removeStorageSync('info')
}
}
//调用登录云函数
let login = await wx.cloud.callFunction({name: 'login'})
//写入缓存
login.result.time = new Date().getTime()
wx.setStorageSync('info', login.result)
return login.result
}
如果业务后端完全使用云开发的话,客户端似乎没有必要保存 openId 。
原则上来说, openId 和 sessionKey 一样,属于敏感信息,不应该被传递到前端。