微信服务器的session有效期和服务器本地session的有效期不可能保持完全一致,这在拉取服务器用户数据时候会存在问题。
看到的一个文档的文字:
因为session也存在有效,一旦我们请求业务的CGI后台判断登录态失效了,那么前端可以根据后台返回的错误码来判断是否重新登录。
所以就没有必要每次wx.checkSession,而且wx.checkSession几乎是没有用的到必要,因为登录态可以由我们业务维护,一旦失效,wx.login()重新换回一个session_key 就ok了嘛。
结论是:wx.checkSession几乎没有必要调用,而且他本身耗时,长达300+ms。
有人解答下吗
如果仅仅利用微信wx.login做快速登录 确实是不需要用到checkSession的,只要自己维护好自己的登录态即可。
如果需要算数据签名等流程 需要用到session_key时,此时用checkSession检查其是否过期会对流程有一定的性能优化。
这里我们的文档写得比较模糊,我们后续改进。
@6楼 是可以这么做的,如果想要更好的性能,就在需要用到sessionKey的时候用checkSession
没搞懂你的意思。
总之,如果你只是用 wx.login 做快速登录你们自己的账号这个事情的话,可以不用管checkSession。
只有你们后台需要使用微信的session_key这个字段时 你们才要关心checkSession
onshow之后等一下getuserinfo完成再setdata。
右上角是不能自定义的,开发者可以在页面其他合适的区域放按钮,目前小程序支持全屏,所以开发者可以在左上角放按钮(配置是 window navigationStyle = custom)
微信 wx.checkSession 这个方法设计的很诡异,session_key 是在服务器端用的,但是这个check 方法是在客户端用的,难道每次还要在客户端和服务器端来回跑吗?标准的 OAuth 设计中,都是在服务器端做的。
@15楼,你这样说有点模糊,为了便于我们改进,能具体说说哪些API没有逻辑性吗?举点例子说明为什么没有逻辑性
@10楼,session概念没有问题,你可能需要自己再去理解一下。
@8楼,可以直接说一下你的问题
引用一下:
就是这个意思,checksession只是微信自己对于用户auth之后的一个状态管理,有效期内就可以用session_key调起一些接口,反之则需要刷新session_key。
如果自己维护用户的token及登陆这一些,checksession无所谓的事情了
除非你服务端需要用session_key时候,(比如获取用户绑定的手机号),你需要checkSession,不过期就无所谓,过期了就重新login一下,给后台code换新session_Key
mark
picker的确定按钮样式如何改变?只能用view-picker吗