失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 微信公众号前后端分离项目网页授权登录问题

微信公众号前后端分离项目网页授权登录问题

时间:2019-02-19 03:18:54

相关推荐

微信公众号前后端分离项目网页授权登录问题

问题描述

微信公众号网页授权登录,因为是前后端项目,所以跳转是在前端做的,所以回调地址配置的是前端页面地址,例如:xxx/callback?redirect_url=需要登录才能访问的页面地址,问题发生在需要登录才能访问的页面地址上,如果这个地址上有两个参数,例如xxxx?a=1&b=2,这时候有两个参数a和b,拼接到微信登录页面就是:https://open./connect/oauth2/authorize?appid=APPID&redirect_uri=xxx%2Fcallback%3Fredirect_url%3Dxxx%3Fa%3D1%26b%3D2&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect,用户授权后,回调到的地址参数为:

xxx/callback?redirect_url=xxxx%3Fa%3D1&b=2&code=CODE&state=STATE,发现原先回调地址的第二个参数作为回调地址的独立参数出现,而不是包含在redirect_url中,这样在回调页面中获取到的redirect_url值就会少了一个参数b,这样对于业务而言就不完整了。

问题解决方案

在回调的页面中,不直接获取redirect_url的值,而是通过window.location.href中去拆分拿到redirect_url=后的所有值,再去掉除微信加入的code和state参数,剩下的就是之前完整的redirect_url。

注:这个问题应该是微信公众号的一个bug

如果觉得《微信公众号前后端分离项目网页授权登录问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。