Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

既然因为自己萌新才选择wafer,那么请官方索性针对萌新多解释一下检查用户身份的流程 #16

Open
microkof opened this issue Feb 14, 2019 · 0 comments

Comments

@microkof
Copy link

microkof commented Feb 14, 2019

首先我说明,我已用wafer部署成功,qcloud.login和qcloud.request都OK,request也确实带了skey请求头,与服务器数据库所存一致。

现在假设我有个记日记的小程序。

那么我的问题是:

#第一大问题,检查有效登录

刚打开小程序首页的时候,需要get该用户的所有日记。此时,直接get有可能是登录态失效的。那么,我应当如何判断登录态才是最优实践?
首先我试用了一下wx.checkSession,这个API的原理我不清楚,假如我把wx.checkSession理解为“检查用户登录有效性”,那么,我发现这个API有时候准,有时候不准,也就是说,有时候打开小程序,wx.checkSession为success,但是qcloud.request发送的skey是错的。而有时候skey又是正确的。那么wx.checkSession不是检查用户登录有效性的方法么?
如果不是用wx.checkSession,又该怎么判断?难道永远假设用户没登录,每次都设上
qcloud.request({
login: true,

吗?这会带来额外的连接开销。

或者,是先尝试get一次,不成功则qcloud.login?

#第二大问题,id是什么

https://github.com/tencentyun/wafer/wiki/会话服务

上面有句话是:

业务服务器收到会话管理服务器的响应后,将 id 和 skey 返回给微信小程序客户端
微信小程序客户端将 id 和 skey 存入 storage 中供后续请求使用

我的问题是,qcloud.login的res中并没有什么“id”,qcloud.request的请求头里面也没有“id”,既然wafer是高度封装的,那么为什么不涉及“id”呢?以及“id”是干什么用的?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant