Web 端 SDK
Last updated
Last updated
APP 扫码 Web 端用到的 SDK 为 authing-js-sdk,请先了解如何在浏览器端安装以及初始化 SDK。
Authing SDK 提供两种方式接入:
直接使用 Authing 提供的扫码登录组件(startAppAuthScanning)。
只调用业务接口,自己实现 UI。
Authing.qrlogin.startScanning(options)
参数
可选/必选
说明
mount <string>
可选
挂载点 Dom ID,如不写则默认漂浮在文档中间。
interval <number>
可选
轮询时间间隔,单位为 ms,默认为 800 ms。
onPollingStart <function>
可选
轮询开始时会被回调,只会回调一次。回调参数 intervalNum 为 setInterval 返回的数值,可使用 clearInterval 停止轮询。
如:clearInterval(intervalNum)
onResult <function>
可选
每次查询获取到数据都会回调,参数 res 示例如下:
{ "code": 200, "message": "查询二维码状态成功", "data": { "qrcodeId": "5e05f6027fde537d950f7da9", "scanned": false, "expired": false, "success": false, "canceled": false, "status": 0, "userInfo": {}, "description": "二维码还没有被扫描" }}
onScanned <function>
可选
用户扫码时会被回调,只会回调一次。回调参数 userInfo 只包含了用户昵称和头像,开发者可以将其展示在扫码框中。
onSuccess <function>
可选
用户同意授权之后将会被回调,只会回调一次,之后轮询结束。参数 data 是一个字典,包含两个字段:ticket 和 userInfo。出于安全性考虑,默认情况下,userInfo 只会包含昵称(nickname)和头像(photo)两个字段,开发者也可以在后台配置使其返回完整用户信息,详情见自定义配置。 ticket 可以用来换取完整的用户信息,相关接口见下文。
onCancel <function>
可选
用户取消授权只会会被回调,只回调一次,之后轮询结束。
onExpired <function>
可选
二维码失效时被回调,只回调一次,之后轮询结束。
onError <function>
可选
每次查询失败时都会回调。回调参数 data 示例如 {"code": 2241,"message": "二维码不存在","data": null}。完整错误代码请见完整错误代码页。
onQRCodeLoad <function>
可选
二维码首次成功加载时回调。回调参数 qrcode 是一个字典,包含两个字段:qrcodeId、qrcodeUrl。
onQRCodeShow <function>
可选
二维码首次出现在页面上时回调。回调参数 qrcode 同上。
onQRCodeLoadFaild <function>
可选
二维码加载失败时会被回调。
下面是一个最简的调用:一共只需要 5 行代码。
扫码组件示例:
Authing.qrlogin.geneCode(options)
参数
可选/必选
说明
scene
必选
场景值。为常量值,填 APP_AUTH。
userDefinedData
可选
自定义数据。类型为任意对象。
请求示例:
返回结果:
使用在线二维码解码工具 查看二维码数据如下:其中 customVar1 和 customVar2 保存到了 userDefinedData 对象中。
Authing.qrlogin.checkCodeStatus(options)
参数
可选/必选
说明
qrcodeId
必选
二维码 ID
scene
必选
场景值。为常量值,填 APP_AUTH。
请求示例:
返回结果示例:
请求结果字段说明:
scanned: 二维码是否已经被扫描
expired:二维码是否已经过期
success:用户是否成功授权
canceled:用户是否取消授权
status
0: 未知状态,即还未扫码,或者已经扫码但用户还没有点击同意授权或者取消授权。
1: 用户同意授权
-1: 用户取消授权
userInfo:
默认情况下,在用户扫码之后,会包含昵称(nickname)和头像(photo)两个字段
开发者也可以配置返回完整用户信息(包括登录凭证 token)
ticket:用于换取完整用户资料。此字段只有在用户同意授权之后才会出现。详情见下文。
Authing.qrlogin.pollingCodeStatus(options)
此接口为 checkQRCodeStatus 的封装。
参数说明:
参数
可选/必选
说明
onPollingStart <function>
可选
轮询开始时会被回调,只会回调一次。回调参数 intervalNum 为 setInterval 返回的数值,可使用 clearInterval 停止轮询。
如:clearInterval(intervalNum)
onResult
可选
每次查询获取到数据都会回调,参数 res 示例如下:
{ "code": 200, "message": "查询二维码状态成功", "data": { "qrcodeId": "5e05f6027fde537d950f7da9", "scanned": false, "expired": false, "success": false, "canceled": false, "status": 0, "userInfo": {}, "description": "二维码还没有被扫描" }}
onScanned
可选
用户扫码时会被回调,只会回调一次。回调参数 userInfo 只包含了用户昵称和头像,开发者可以将其展示在扫码框中。
onSuccess
可选
用户同意授权之后将会被回调,只会回调一次,之后轮询结束。参数 data 是一个字典,包含两个字段:ticket 和 userInfo。出于安全性考虑,默认情况下,userInfo 只会包含昵称(nickname)和头像(photo)两个字段,开发者也可以在后台配置使其返回完整用户信息,详情见自定义配置。 ticket 可以用来换取完整的用户信息,相关接口见下文。
onCancel
可选
用户取消授权只会会被回调,只回调一次,之后轮询结束。
onExpired
可选
二维码失效时被回调,只回调一次,之后轮询结束。
onError
可选
每次查询失败时都会回调。回调参数 data 示例如 {"code": 2241,"message": "二维码不存在","data": null}。完整错误代码请见完整错误代码页。
Authing.qrlogin.exchangeUserInfo(ticket)
参数说明:
参数
可选/必选
说明
ticket
必选
从二维码状态查询接口得到的 ticket
调用示例:
返回结果:
注意:默认情况下,此接口只允许在服务器端调用,即需要使用用户池密钥初始化之后。
ticket 默认有效时间为 300 s。
开发者可在 Authing 控制台 基础配置 -> 基础设置 -> App 扫码登录 Web 自定义配置 处修改。详情见自定义配置项页。