SAS-Wechat-Login
一、前言
微信登录使用需要进行资质认证,虽然公众平台提供了测试号,但是测试号只能用在微信浏览器打开的网页中使用,如果将测试号用于扫码登录,则会提示scope参数错误;虽然微信登录的流程也是oauth的那一套流程,但是它要求的参数并不符合oauth的规范,所以想要集成进联合身份认证中则需要根据参数要求进行定制。
接下来就该展示本人的三板斧了,理论、编码、测试。
如果不想看分析可以直接拉至中间的代码部分
二、定制分析
首先,打开网页授权的文档看一下微信登录并获取用户信息的流程,咱们根据文档一步步分析怎么去改造项目以适配微信登录

1. 第一步:用户同意授权获取code
参数列表(摘抄自微信登录文档)
| 参数 | 是否必须 | 说明 |
|---|---|---|
| appid | 是 | 公众号的唯一标识 |
| redirect_uri | 是 | 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理 |
| response_type | 是 | 返回类型,请填写code |
| scope | 是 | 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 ) |
| state | 否 | 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 |
| #wechat_redirect | 是 |