近期,Authing 发布了新功能——小程序扫码登录。

小程序扫码登录指使用Authing小程序身份管家在网页端或其它客户端执行微信登录,目前的SDK仅支持客户端JavaScript。其它语言若想使用可参考HTTP接口说明。

点击此处立即体验小程序扫码登录

注意:使用小程序扫码登录,请将authing-js-sdk升级到v0.1.19版本以上


接入流程

1. 配置小程序信息

在Authing控制台中填入小程序的appId、secret和回调地址,用户扫码登录成功会回调至填入的地址。


2. 使用SDK(authing-js-sdk)

在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上。

参数说明


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接口说明

HTTP接口适用于非JavaScript平台,JavaScript开发者可以略过此节。

扫码登录需要客户端做两个步骤:

  1. 生成二维码
  2. 客户端轮询查询扫码状态

还有一个步骤是用户搜索身份管家小程序进行扫码登录,这块Authing已经做好,不需要开发者操心。

1. 生成二维码

地址:https://oauth.authing.cn/oauth/wxapp/qrcode/:clientId?random=RANDOM_STRING
  • 请求方法:

    • GET
  • 参数:

    • {String} clientId

      • 即将登录的Authing应用Id
    • {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
      }
    • 返回数据中data中的qrcode即二维码地址,可直接先客户端显示。
    • 若处理成功,code为200,非200都为失败。

2. 轮询查询扫码状态

地址:https://oauth.authing.cn/oauth/wxapp/confirm/qr?random=RANDOM_STRING
  • 请求方法:

    • 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控制台中配置的回调地址,开发者可自行回调到此地址
    • 如果用户已扫码,则code为200,若为非200,则代表用户未扫码或扫码失败

Authing新功能——小程序扫码登录的更多相关文章

  1. 微信小程序~扫码

    为了让用户减少输入,我们可以把复杂的信息编码成一个二维码,利用宿主环境wx.scanCode这个API调起微信扫一扫,用户扫码之后,wx.scanCode的success回调会收到这个二维码所对应的字 ...

  2. 微信小程序扫码解析小程序码

    通过微信扫小程序码,跳转到应用小程序内, 如何解析小程序码的参数呢? 一般小程序码会跳转到设置的页面,如首页, 可以直接跳转到小程序首页,然后解析小程序携带的参数,再打开某个页面. (小程序码的路径要 ...

  3. 微信小程序——扫码后提示“打开失败缺少ID”

    解决步骤: 进入通讯录tab->点击右上角添加朋友->搜索框输入:recover,拉到最底下选择小程序进行修复操作 参考:https://developers.weixin.qq.com/ ...

  4. uniapp 微信小程序扫码处理

    1.view  代码 <view class="v-main-scan"> <uni-icons @click="scanCode" clas ...

  5. 小程序扫码、上传图片、css时间轴

    de <!-- 导航 --> <view class="navSec flexBox"> <text class="navItem {{ s ...

  6. C#实现像微信PC版一样的扫码登录功能

    现在好些网站都支持扫码登录,感觉上安全了很多,但是本地程序扫码登录的不多,就用C#实现了一下,需要作如下准备 在官网上申请一个企业微信,有条件的话做个企业认证吧,我们的是认证过的,所以账号和本地其他系 ...

  7. 微信小程序使用场景延伸:扫码登录、扫码支付

    微信小程序使用场景延伸:扫码登录.扫码支付 小程序最适合的使用场景有哪些?相比大家能列举出来很多,但这个场景,大家可能多数没想到_^ 笔者团队近期接到了一个PC项目:转转游戏租号PC官网,该项目要求在 ...

  8. 微信开放平台PC端扫码登录功能个人总结

    最近公司给我安排一个微信登录的功能,需求是这样的: 1.登录授权 点击二维码图标后,登录界面切换为如下样式(二维码),微信扫描二维码并授权,即可成功登录:    若当前账号未绑定微信账号,扫描后提示“ ...

  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock

    笔记 6.微信扫码登录回调本地域名映射工具Ngrock         简介:讲解微信扫码回调本地域名ngrock讲解 1.为什么要用这个,微信扫码需要配置回调,需要配置对应的域名          ...

随机推荐

  1. docker-文件系统出错处理

    Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2 2018年03月17日 22: ...

  2. Robot Framework(三)项目实践出现的问题以及解决方法

    导航: 1.元素定位失败 2.系统自带的确认弹窗 3.ElementNotVisibleException: Message: element not visible 1.元素定位失败(使用frame ...

  3. 矩阵快速幂(Matrix_Fast_Power)

    一.基础知识(1)矩阵乘法 https://blog.csdn.net/weixin_43272781/article/details/82899737 简单的说矩阵就是二维数组,数存在里面,矩阵乘法 ...

  4. CF 403D Beautiful Pairs of Numbers

    The sequence of integer pairs (a1, b1), (a2, b2), ..., (ak, bk) is beautiful, if the following state ...

  5. SQL学习(二)之四大查询语句以及标准写法

    SQL四大查询语句——增删改查 增-INSERT INSERT INTO 表 (字段列表) VALUES(值列表) INSERT INTO `user_table` (`ID`, `username` ...

  6. LintCode 53---翻转字符串中的单词

    public class Solution { /* * @param s: A string * @return: A string */ public static String reverseW ...

  7. 微信小程序swiper使用网络图片不显示问题

    @ wxml代码: <view class="container"> <swiper indicator-dots="true}" autop ...

  8. WebSocket的兼容性

    https://github.com/sockjs/sockjs-client https://socket.io/ https://github.com/gimite/web-socket-js h ...

  9. appium 自动化测试框架详读(一)

    appium框架使用的过程记录,开始使用markdown来语法来编写,不知道博客园是否会支持markdown语法 ***1. appium原理* appium启动时,创建一个http://127.0. ...

  10. MyEclipse_10.7安装及破解

    MyEclipse_10.7 0.解压文件如下两图操作:1.运行安装程序,双击myeclipse-10.7-offline-installer-windows.exe进入安装界面,下一步:2.同意协议 ...