近期,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控制檯中配置的回調地址,開發者可自行回調到此地址