Laravel EasyWeChat 解密用户信息 :The g
2020-09-25 本文已影响0人
囧囧的猪
我遇到的是以下情况,可能对你有帮助。
wx.login调用后端接口进行JWT验证

我是使用 firstOrCreate将openid,user_id,session_key存入数据库中
当小程序端点击授权时,将iv,data传给后端,后端进行解密,将小程序用户数据存入数据库

这时$user中的session_key是数据库中的,在开发环境中小程序要测试接口,需要清除登录信息什么的,再次login会生成新的session_key,导致后端解密失败。
这种情况在生产环境也会有,比如用户换了手机或重新载入小程序等。
知道原因后,将图1的 firstOrCreate 改为 updateOrCreate 即可!