https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#0
我目前正在开发一个使用Vue作为前端、Flask框架作为后端的单页面3D Web应用程序。这种设置保持了前端和后端之间的分离。
我的项目需要集成微信登录到我的单页面应用(SPA)中。微信提供了两种不同的登录方法 - 一种用于移动浏览器,另一种用于桌面浏览器。为了防止页面刷新,我在我的SPA中利用了URL的片段部分('#'后面的部分)。
根据文档中的说明:
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。
然而,我在移动浏览器版本的微信中遇到了一个问题。它在URL片段之前插入了查询参数,导致意外的页面刷新。服务器无法识别带有这些前置查询参数的URL,因此会刷新页面。
以下是移动版本中存在问题的URL格式示例:
https://www.domain.com/?code=0013LxGa1NPTUF051uJa14Pxmq33LxGD&state=131AQE3MV8ZOKFLUBTAB#/login
相比之下,桌面版本的URL格式是符合预期的,URL片段(#/login)在查询参数(?code=...&state=...)之前:
https://www.domain.com/#/login?code=0013LxGa1NPTUF051uJa14Pxmq33LxGD&state=131AQE3MV8ZOKFLUBTAB
所以十分困惑,请求解决。