近期,Authing 发布了新功能——小程序扫码登陆。javascript
小程序扫码登陆指使用Authing小程序身份管家
在网页端或其它客户端执行微信登陆,目前的SDK仅支持客户端JavaScript。其它语言若想使用可参考HTTP接口说明。java
点击此处当即体验小程序扫码登陆node
注意:使用小程序扫码登陆,请将authing-js-sdk
升级到v0.1.19
版本以上小程序
在Authing控制台中填入小程序的appId、secret和回调地址,用户扫码登陆成功会回调至填入的地址。微信
在authing-js-sdk
中使用startWXAppScaning
方法(authing-js-sdk文档):网络
var Authing = require('authing-js-sdk');
// 对Client ID和Client Secret进行验证,获取Access Token
var auth = new Authing({
clientId: 'your_client_id',
secret: 'your_app_secret'
});
auth.then(function(validAuth) {
validAuth.startWXAppScaning({
mount: 'qrcode-node', //二维码挂载点的HTML元素ID,如不写则默认漂浮在文档中间
});
})
复制代码
扫码完成后会自动跳到用户配置的URL上。app
validAuth.startWXAppScaning({
mount: 'qrcode-node', // 二维码挂载点,如不写则默认漂浮在文档中间
redirect: true, // 是否执行跳转(在用户后台配置的URL),默认为true,相关用户信息回传至url上
onSuccess: function(res) {}, // 登陆成功后回调函数,redirect为true时不回调此函数
onError: function(error) {}, // 登陆失败后回调函数,通常为网络问题
interval: 1500, // 每隔多少秒检查一次,默认1500
tips: '搜索小程序 <strong>身份管家</strong> 扫码登陆', // 提示信息,可写HTML
});
复制代码
HTTP接口适用于非JavaScript平台,JavaScript开发者能够略过此节。dom
扫码登陆须要客户端作两个步骤:函数
还有一个步骤是用户搜索身份管家
小程序进行扫码登陆,这块Authing已经作好,不须要开发者操心。ui
请求方法:
GET
参数:
{String} clientId
{String} random
返回数据:
{
"data": {
"_id": "*********************",
"client": "*********************",
"oauth": "*********************",
"oauthWithApplication": "*********************",
"qrcode": "https://usercontents.authing.cn/wxapp/qrcode/SweuVjfoPwSUTVEUv.png",
"expiredAt": "2018-07-16T12:56:03.000Z",
"__v": 0,
"createdAt": "2018-07-16T12:55:03.302Z",
"redirect": "",
"success": false,
"used": false
},
"code": 200
}
复制代码
请求方法:
POST
参数:
{String} random
返回数据:
{
"data": {
"code": 200,
"message": "扫码登陆成功",
"data": {
"_id": "*********************",
"email": null,
"emailVerified": false,
"username": "ivy",
"nickname": "ivy",
"company": "",
"photo": "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLkQc7PfrbBqFMib6lkPUxaA5UsMiadibfWQtKv0CBcKnH2khXicvUB9WB2ibYxN6GRTaTsQfPtlsAafBg/132",
"browser": "",
"token": "******************************************.*********************.*********************",
"tokenExpiredAt": "Wed Aug 01 2018 15:59:42 GMT+0800 (CST)",
"loginsCount": 14,
"lastLogin": "Tue Jul 17 2018 15:59:42 GMT+0800 (CST)",
"lastIP": "*********************",
"signedUp": "Tue Jul 17 2018 11:15:03 GMT+0800 (CST)",
"blocked": false,
"isDeleted": false,
"__typename": "ExtendUser"
},
"redirect": "http://sample.authing.cn/#/redirect"
},
"code": 200
}
复制代码
redirect
为用户在Authing控制台中配置的回调地址,开发者可自行回调到此地址