微信授权登录是oauth2的典型应用,且大多用户使用的是oauth2的最严格模式:授权码模式。
网上大量的微信授权登录流程图,但没有找到完全对的。当然我相信可能作者是理解正确,但是作图没有注意区分,导致容易误导新手,甚至会带来安全隐患。
先举例两个比较常见的错误:
1 没有区分第三方的前端和后台。
比如下图的步骤6。让开发者认为校验code的操作在前端进行,这样secret就暴露了。
2 没有区分第三方客户端和微信客户端。
比如这里的步骤5.
3 一个较准确的图。
注意区分第三方的前端和后台。以及微信app的前端和后台。
1 code转token,一定要在后台进行,以确保secret的安全。
2 state参数最好校验,否则会发生csrf漏洞,尤其对于绑定类的操作。