最近项目有个需求是企业微信扫码登录,看过官方文档后感觉挺简单的,然而还是踩了好多坑,折腾了好久。。
在此记录下遇到的坑。
URI的编码
官方文档的参数说明是这样的
image.png
其中特别说明 'redirect_uri' 是需要进行Urlcode,我就天真地用window.encodeURI来编码,当时的我并不知道还有window.encodeURIComponent,更别说两者的区别了,因此就引发了一系列的问题!
扫码成功后的重定向地址
因为用户登录后的一系列操作,比如获取token、获取用户权限菜单等,都是在Login组件里进行的,因此我希望重定向的地址也是/login路由。
然而,重定向地址是: http://www.xxx.com/?code=xxx&state=xxx&appid=xxx#/login
重点是querystring的位置,当时一直很纳闷,后来查阅了URI的标准,发现其标准规定querystring就是在锚点