收藏
回答

微信公众号登录授权不返回code,如何解决?

redirect_uri这么写:https://www.abcdef.com/test.html,页面可以正常跳转,跳转后的页面也可以获取到code

但实际上项目基于angular开发,hash模式

redirect_uri就变成了:https://www.abcdef.com/#/base/splash/index,页面可以正常跳转,但是跳转后的页面获取不到code

如何解决?

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

2 个回答

  • 阿白
    阿白
    2019-09-30

    查询资料得知:

    对于hash模式的url,微信会把?code=xxx&state=xxx插在#号前。

    比如你填的的重定向地址是:https://www.a.com/#/path1/path2

    那么微信会给你重定向到https://www.a.com/?code=123&state=456#/path1/path2

    在我的项目中,angular会忽略掉?code=xxx&state=xxx这部分,直接跳转了,所以获取不到参数!!

    此问题终结,后面就是如何拦截这种路径了。

    2019-09-30
    有用 1
    回复 4
    • G-STEPS街舞工作室
      G-STEPS街舞工作室
      2019-09-30
      angular 可以设置不使用 # 模式,不过需要服务端配合
      2019-09-30
      回复
    • sb一样拉风
      sb一样拉风
      2019-12-24
      感谢兄弟!我也是angular开发前端oauth碰到这样问题,一直没找到问题,按照提示将hash改成纯H5,一切OK!!!感谢感谢🙏
      2019-12-24
      回复
    • Bober哥²⁰²⁴
      Bober哥²⁰²⁴
      2020-05-07
      我也遇到同样的问题,使用不带#号的返回地址,确实可以解决这个问题,多谢!
      2020-05-07
      回复
    • 背对夕阳看黄昏
      背对夕阳看黄昏
      2020-05-13回复Bober哥²⁰²⁴
      解决了吗,为什么有的可以有的不可以
      2020-05-13
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-09-30

    提供下公众号的原始ID,完整的请求,请求时间

    2019-09-30
    有用
    回复 5
    • 阿白
      阿白
      2019-09-30
      2019-09-30
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-09-30回复阿白
      具体的请求时间呢
      2019-09-30
      回复
    • 阿白
      阿白
      2019-09-30回复疯狂的小辣椒
      这跟请求时间没关系,这又不涉及到请求,你访问下地址就知道,重定向时有没有给我返回code和state
      2019-09-30
      回复
    • Zyqqq
      Zyqqq
      2020-01-21回复阿白
      请问你们这个问题解决了吗?vue开发页面router的hash模式也出现这个问题
      2020-01-21
      回复
    • 氼乚
      氼乚
      2023-11-17回复阿白
      这个链接跳转只能在微信客户端打开,那怎么获取code值传给PC端呢
      2023-11-17
      回复
登录 后发表内容
问题标签