微信三方登录

225 阅读3分钟

1.pc端接入

D0wkkHSbtC6VUSHX4WsjP5ssg5mdnEmXO8NGVGF34dxS9N1WCcq6wvquR4K_Hcut.png

1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

(1)通过code获取access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

入参 参数说明

参数是否必须说明
appid应用唯一标识,在微信开放平台提交应用审核通过后获得
secret应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
code填写第一步获取的code参数
grant_type填authorization_code

出参 参数说明

参数说明
access_token接口调用凭证
expires_inaccess_token接口调用凭证超时时间,单位(秒)
refresh_token用户刷新access_token
openid授权用户唯一标识
scope用户授权的作用域,使用逗号(,)分隔
unionid当且仅当该网站应用已获得该用户的userinfo授权时,才会出现该字段。

(2)获取用户信息

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

入参 参数说明

参数是否必须说明
access_token调用凭证
openid普通用户的标识,对当前开发者账号唯一
lang国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为en

出参

参数说明
openid普通用户的标识,对当前开发者账号唯一
nickname普通用户昵称
sex普通用户性别,1为男性,2为女性
province普通用户个人资料填写的省份
city普通用户个人资料填写的城市
country国家,如中国为CN
headimgurl用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
privilege用户特权信息,json数组,如微信沃卡用户为(chinaunicom)
unionid用户统一标识。针对一个微信开放平台账号下的应用,同一用户的unionid是唯一的。

(3)业务逻辑处理 根据用户唯一标识判断用户是否存在,不存在则创建,返回系统token

2.小程序接入

api-login.2fcc9f35.jpg

(1)手机号未授权
通过code获取用户唯一标识
https://api.weixin.qq.com/sns/jscode2session

入参

请求参数

属性类型必填说明
appidstring小程序 appId
secretstring小程序 appSecret
js_codestring登录时获取的 code,可通过wx.login获取
grant_typestring授权类型,此处只需填写 authorization_code
出参

返回参数

属性类型说明
session_keystring会话密钥
unionidstring用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台账号下会返回,详见 UnionID 机制说明
errmsgstring错误信息
openidstring用户唯一标识
errcodeint32错误码
业务逻辑处理
(2)手机号授权

通过手机号code获取手机号信息,通过登录code获取用户唯一标识

通过手机号code获取手机号信息
https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN

入参 请求参数

属性类型必填说明
access_tokenstring接口调用凭证,该参数为 URL 参数,非 Body 参数。使用access_token或者authorizer_access_token
codestring手机号获取凭证

出参 返回参数

属性类型说明
errcodenumber错误码
errmsgstring错误信息
phone_infoobject用户手机号信息

手机号作为用户唯一标识

业务逻辑处理

参考:developers.weixin.qq.com/doc/oplatfo…

developers.weixin.qq.com/miniprogram…