近期,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. PermissionError: [Errno 13] Permission denied: '/run/user/0/jupyter'

    解决办法:需要给/run/user整个目录开放权限,不能单独给'/run/user/0/jupyter'这个文件,因为jupyter是需要往目录中添加文件,/run/user/0/jupyter,此时 ...

  2. Android新版xUtils3工具类相关debug

    首先出现问题是 build.gradle中的csayısıom.lidroid.xutils:xutils:2.6.13报错了,所以想到是版本的问题,github上搜了xutils发现有新版xutil ...

  3. js小数和百分数的转换

    一.百分数转化为小数 function toPoint(percent){ var str=percent.replace("%",""); str= str/ ...

  4. Yii2 常用代码集合

    Yii2.0 对数据库查询的一些简单的操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

  5. 关于CSRF 和 csrftoken

    CSRF 虽然利用了session验证机制的漏洞,一般使用加密token的方式防御,但是其本身和session以及JWT token没有直接联系. 描述 CSRF利用用户正常登录产生的cookie,利 ...

  6. spring基于注解的IoC以及IoC的案例

    1.Spring中IoC的常用注解 1.1明确: (1)基于注解的配置和xml的配置要实现的功能都是一样的,都是要降低程序之间的耦合,只是配置的形式不一样 2.案例:使用xml方式和注解方式实现单表的 ...

  7. charles 安装使用教程及弱网设置

    1.安装jdk环境 2.下载charles 3.打开直接使用 4.手机端安装相关证书 5.手机端网络设置代理 6.分析查看数据 点击sequane中的值查看app中的数据返回与请求值.   charl ...

  8. Spark写入HBase(Bulk方式)

    在使用Spark时经常需要把数据落入HBase中,如果使用普通的Java API,写入会速度很慢.还好Spark提供了Bulk写入方式的接口.那么Bulk写入与普通写入相比有什么优势呢? BulkLo ...

  9. Charles中使用Map Local提高测试效率

    书接上回,上次说到Charles中可以使用修改返回值来模拟接口返回,这次我们来说一下Charles中另外一个强大的功能. 我们用手机连接Charles,具体可以参考上一篇<借助Charles来测 ...

  10. 使用NPOI或POI 导出Excel大数据(百万级以上),导致内存溢出的解决方案(NPOI,POI)

    使用工具:POI(JAVA),NPOI(.Net) 致谢博主 Crazy_Jeff 提供的思路 一.问题描述: 导出任务数据量近100W甚至更多,导出的项目就会内存溢出,挂掉. 二.原因分析: 1.每 ...