收藏
回答

登录态token的维护

问题模块
API和组件

我看文档的时候关于登录态的维护是用`wx.checkSession`去检查登录态的code是否过期,过期的话就重新调用`wx.login`拿。

我的想法是把这个code先存到stroage。

但是这样是不是任何要用到code换openid之前都需要用checkSession去检查一次,如果code不存在或者过期了都要用wx.login获取


或者还有更好的办法吗?


最后一次编辑于  2017-09-21
回答关注问题邀请回答
收藏

5 个回答

  • 小程序技术专员-拉风
    小程序技术专员-拉风
    2017-09-21

    把openid写到客户端  服务端直接信任openid 这种做法很不安全,很容易被人伪造一个openid发请求给后台。


    建议服务器校验完code 拿到openid之后 生成一个自己的加密串,例如 sessionid,把sessionid下发到客户端存储。然后服务端存储sessionid和openid的映射。同时要管理sessionid的过期时间

    2017-09-21
    赞同
    回复
  • 小程序技术专员-拉风
    小程序技术专员-拉风
    2017-09-21

    wx.login返回的code有效期只有五分钟。详细文档见:

    https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject


    一般会wx.login之后 颁发业务自己的登录态


    2017-09-21
    赞同
    回复
  • ✨大灰狼✨
    ✨大灰狼✨
    2017-10-11

    3rd服务端如何管理sessionid的过期时间.

    当前是设置了2小时保存时效. 但如果保持和微信端的时效同步?


    目前会遇到 checkSession通过,但3rd服务端过期的情况. 怎么解决?

    2017-10-11
    赞同
    回复
  • 西红柿
    西红柿
    2017-09-21

    LS的。我知道code有5min,

    那样是不是每次需要用这个code换取的openid之前都去checkSession看下是否要重新获取code,

    还是说我在第1次换取的时候就直接把这个openid保存到cache里面就可以了。

    我想做的是支付的操作,服务端那边是想让我直接把openid给他就可以了

    2017-09-21
    赞同
    回复
  • 西红柿
    西红柿
    2017-09-21

    另外就是这个code是不是只能用一次啊。我在支付的时候这个code用第1次服务器那边返回回来就是一个404了

    2017-09-21
    赞同
    回复