1、微信登录时序图
2、获取登录二维码相关信息的接口
2.1、获取secretKey:
微信扫码登录本网站后自动跳转到应用列表页面点击“创建应用”,输入应用名称和回调url(回调url就是用来接收扫码登录成功后的用户信息)
2.2、请求地址如下:
https://server01.vicy.cn/8lXdSX7FSMykbl9nFDWESdc6zfouSAEz/wxLogin/tempUserId?secretKey=xxxxxxxxxxxxxxxxxx(即我们创建应用时所生成的secretKey)
参数secretKey:secretKey是我们调用“码上登录”服务器时候需要进行验证的凭证
说明:获取登录二维码的相关信息。通过开发者项目专属的secretKey(注册获得)获取到登录二维码相关的tempUserId(该次登录会话的凭证)以及qrCodeReturnUrl(发送给前端生成二维码)。
2.3、请求方式
Get
·请求参数
属性 |
类型 |
必填 |
说明 |
secretKey |
string |
是 |
我们创建应用时所生成的secretKey |
·返回的参数
{"errcode":0,"data":{"qrCodeReturnUrl":"http://login.vicy.cn?tempUserId=18d55e78f66848e781bc7ce65a1fe5b4", "tempUserId":"18d55e78f66848e781bc7ce65a1fe5b4"},"message":"成功"}
errcode==0:访问成功
tempUserId:是我们这次会话的凭证,当有多个用户登录时,通过tempUserId就可以识别出是哪一个用户登录成功,而tempUserId就是我们这次会话的凭证。
qrCodeReturnUrl:前端根据此来生成二维码
Object object
属性 |
类型 |
说明 |
errcode |
number |
错误码 |
message |
string |
接口调用情况描述,如:”成功” |
data |
Object |
存放二维码信息的集合 |
object.data的结构
属性 |
类型 |
说明 |
qrCodeReturnUrl |
string |
把qrCodeReturnUrl发送给前端生成二维码 |
tempUserId |
string |
该次登录会话的凭证 |
2.4、errcode错误码
属性 |
说明 |
0 |
请求成功 |
2001 |
参数错误或缺失 |
2002 |
网址信息查询失败,一般为secretKey错误导致 |
3、登录成功后回调给开发者服务器
用户登录成功后,“码上登录”服务器会给开发者服务器发送用户信息,该请求是一个“POST”类型,内容格式是form-data,可用键值对的方式接收(如java的Map),参数如下
3.1、开发者服务器接收到的返回参数
·请求类型 : POST
·内容格式 : form-data
属性 |
类型 |
说明 |
userId |
string |
用户唯一ID |
tempUserId |
string |
该次会话的凭证 |
nickname |
string |
登录用户的昵称(用户授权后,可获得,可能为空) |
avatar |
string |
登录用户的头像url(用户授权后,可获得,可能为空) |
ipAddr |
string |
登录地点的ip |
3.2、开发者服务器返回状态码
当开发者服务器接收到“码上登录”服务器返回的参数无误并且登录成功后,开发者服务器需要向“码上登录”服务器返回一个是否登录成功的状态码
·内容格式 : JSON
·返回字段
属性 |
类型 |
说明 |
errcode |
number |
错误码(0:请求成功) |
message |
string |
接口调用情况描述,如:”成功” |