收藏
回答

公众号获取用户信息,redirect 之后 sessionid会不一致

有这么个业务场景,入口判断是否有session(user_id),如果有则走正常流程,如果没有,redirect 微信地址,微信带上用户信息跳转我们的地址,获取完成,存session 现在发现入口获取session的时候的sessionid和,redirect回来之后的的sessionid不一致,导致每次都去拉授权。。这是啥原因

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

3 个回答

  • 享飞悦小程序-Kevin
    享飞悦小程序-Kevin
    2023-02-24

    遇到了同样的问题,后来解决了。希望能帮助到大家。

    先说明下业务场景:我们是通过开放平台的接口实现网页扫码授权登录,除了谷歌浏览器,其他浏览器都正常,经过调试发现,验证state时出错了,因为state字符串里包含了sessionid,调试时发现初始的sessionid和扫码回调跳转回来的不一致,由此导致session不一样,从而获取不到扫码之前存在session中的内容,扫码登录不成功。

    解决方法如下:

    这里的值应该设置为false,

    按照官方文档的解释,可以找到问题所在

    网页上的授权二维码是是封装在一个iframe中的,谷歌浏览器认为它是独立的访问,由此导致了为它重新生成了一个sessionid,而此处的sessionid不是top window网页的,所以导致获取不到原网页的值。

    后话:花了一上午把整个扫码登录流程调试了一遍,没有发现问题,后来查看官方的文档才找到答案。希望帮到需要的人。

    2023-02-24
    有用 1
    回复
  • Doctor xu。
    Doctor xu。
    2019-09-25


    入口sessionid:0c2j9cuu4supq1b67m9ndbk0h7|time:2019-09-25 16:45:00

    跳转微信url:http://hd-admin.9jiudian.com/xxl/index/Wxinfo/oauthCallback?channel_id=73&source=4|time:2019-09-25 16:45:00

    微信回跳地址sessionid:3uf4q29cpm6ugnjlb1b09u1md0|time:2019-09-25 16:45:00

    微信回跳地址接收参数{"channel_id":"73","source":"4","code":"061mZfX50gBQIC1zjcU50aszX50mZfXE","state":"62430dc0207b3a59e6d30b84fc03af6d"}|time:2019-09-25 16:45:00


    2019-09-25
    有用
    回复
  • 微信支付技术助手1
    微信支付技术助手1
    2019-09-25

    发一下参数和日志信息。

    2019-09-25
    有用
    回复 2
    • Doctor xu。
      Doctor xu。
      2019-09-25
      你好,参数回复在下面了
      2019-09-25
      回复
    • 冰山
      冰山
      2021-05-18
      解决了吗?我这边也是遇到此问题。
      2021-05-18
      回复
登录 后发表内容