收藏
回答

如何解决getUserProfile签名校验错误问题?

在今年4月开始小程序启用getUserProfile接口,获取用户信息以及手机号必须用户触发点击2次,现又一个验证signature的问题,

场景:

A页面点击去登录,授权getUserProfile获取用户信息、rawData、signature、iv、encryptedData等,使用setStorageSync存储在本地存储中

跳转到B页面(登录页),点击微信授权登录按钮获取手机号,获取encryptedData、iv等

将code、手机号的encryptedData、iv,用户信息的rawData、signature、iv、encryptedData一起提交到服务端接口进行注册或登录

此时会偶发一个问题,A获取签名时,一直停留在B页面不去请求,提交到服务端时,服务端的SESSION_KEY已经改变,导致验签失败,请问这个问题应该如何解决?或者在流程上是否有处理错误的地方?

回答关注问题邀请回答
收藏

2 个回答

  • 卖女孩的小火柴
    卖女孩的小火柴
    2021-10-14

    分步保存;

    wx.login---获取session_key;

    1、获取手机号码,如果注册了就LOAD用户信息,如果用户信息为空就进入step2获取用户信息;

    2、获取用户信息;


    2021-10-14
    有用
    回复
  • 24K大白羊🐑
    24K大白羊🐑
    2021-10-12

    找产品经理优化业务逻辑,获取用户信息和手机号分开获取。

    用户基本信息可以作为基础信息,可以根据业务获取。而手机号是一些必要业务才需要获取,比如充值、消费等。

    而且也没必要一起发给后台同时解密啊,这样如果我先授权了基本信息,然后没有授权手机号,下次我登陆的时候,还是需要我授权基本信息,体验也不好。

    2021-10-12
    有用
    回复 7
    • 鱼蛋
      鱼蛋
      2021-10-12
      但是要求使用手机号为唯一识别的,所以登录的时候需要用户信息和手机号信息注册啊
      2021-10-12
      回复
    • 24K大白羊🐑
      24K大白羊🐑
      2021-10-12回复鱼蛋
      那你就直接获取手机号就可以了啊。然后通过静默授权获取openid,直接和手机号做绑定就可以了。
      2021-10-12
      回复
    • 鱼蛋
      鱼蛋
      2021-10-12回复24K大白羊🐑
      只有手机号·就没有用户名信息头像那些了。。。用户中心这里没法显示了·因为还有一个网页端,网页端的扫码登录会显示用户的头像和用户名
      2021-10-12
      回复
    • 24K大白羊🐑
      24K大白羊🐑
      2021-10-12回复鱼蛋
      那就分开保存,原因上面说的很清楚了。
      2021-10-12
      回复
    • 鱼蛋
      鱼蛋
      2021-10-12回复24K大白羊🐑
      分开保存就会有注册失败的问题啊·注册要求要有头像、用户名和手机号
      2021-10-12
      回复
    查看更多(2)
登录 后发表内容