收藏
回答

关于wx.checkSession是否要比要调用的问题?

  1. 进入小程序时不能直接每次调用wx.login吗?为啥还要查一下wx.checkSession?
  2. 目前我的流程:进入小程序时第一步查询是否有scope.userInfo,如果没权限则调用wx.authorize,如果有授权则是调用wx.login,拿到code再次请求wx.getUserInfo,拿到getUserInfo返回的数据后向后端请求获取用户的具体数据。
  3. 上面的流程还需要加上wx.checkSession吗?是不是我流程上出问题了,?为啥不能每次进入小程序直接调用wx.login?这样每次登录态不就是最新的吗?为啥还要wx.checkSession?有大佬能指导一下流程吗?有点乱
回答关注问题邀请回答
收藏

5 个回答

  • 微言传输住手
    微言传输住手
    2022-11-03

    2022-11-03
    有用 1
    回复
  • ElPsyCongroo
    ElPsyCongroo
    2022-07-29

    用手机号登陆的 , 当然需要用到session_key , 检查session_key + encryptedData + iv , 就可以直接登录 , 不需要走wx.login api。手机号登录还是最优解 , openid + unionid , 离开了这个平台就没用了 , 况且多平台还要走微信开放平台。 而且wx.checkSession这个api一直都有问题 , 可以用 , 但不可以信

    2022-07-29
    有用 1
    回复
  • Jan
    Jan
    2023-07-06

    2023-07-06
    有用
    回复
  • 张楠楠.前端设计开发
    张楠楠.前端设计开发
    2023-04-03

    OPENID 是身份识别,如果不需要特别的API使用,没必要wx.checkSession。个别特殊的API需要验Session有效才能操作(这里说的SESSION是微信方服务器的)不是自己服务器的SESSION。

    所以你自己只用OPENID使和的话时效自己控制,但微信服务器的,就需要验证登录有效性。所以才需要 wx.checkSession 先验证一下是否有效,有效则调用微信方API接口换取有用的数据。

    如果每次进来都云调用LOGIN。 并不妥,有调用次数限制。每次进入小程序执行一次就行了。其它时候进入,验证是否过期就行了。过期就重新登发,没过期就调用本地存储的TOKEN使用。以减少不必要的请求。


    2023-04-03
    有用
    回复
  • 刘绵绵是仙女
    刘绵绵是仙女
    2022-04-28

    我直接是把拿到相对应的信息放在缓存中,缓存失效的时候,再进行login就行了

    2022-04-28
    有用
    回复 7
    • Leon
      Leon
      2022-04-28
      指的是哪些相对应的信息
      2022-04-28
      回复
    • 刘绵绵是仙女
      刘绵绵是仙女
      2022-04-28回复Leon
      wx.login接口主要就是返回code提供后续去获取用户信息,拿到用户信息比如openId存在缓存中去进行提供后续使用,你拿openId作为标识不就行了,当openID失效的时候再去login就行了吧?除非想同步微信头像啥的,那就需要重复去调用去进行覆盖
      2022-04-28
      回复
    • Leon
      Leon
      2022-04-28回复刘绵绵是仙女
      那就是整个流程都没用到wx.checkSession咯?
      2022-04-28
      回复
    • 刘绵绵是仙女
      刘绵绵是仙女
      2022-04-28回复Leon
      我是暂时没用这个
      2022-04-28
      回复
    • 刘绵绵是仙女
      刘绵绵是仙女
      2022-04-28回复Leon
      因为微信小程序没注明他们的登录状态多久失效,提供这个接口只是为了让某些特定的情况下由我们主动发起去检查状态
      2022-04-28
      回复
    查看更多(2)
登录 后发表内容