Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
使用指南
  • 快速开始

  • 对用户进行认证

  • 对用户进行权限管理

  • 授权

  • 管理用户账号

  • 管理用户目录

  • 同步中心

  • 应用

  • 成为联邦认证身份源

  • 连接外部身份源(IdP)

  • 微信生态全场景能力

  • 迁移用户到 Authing

  • 管理组织机构

  • 安全设置

  • 品牌化

  • 自动化

  • 审计日志

  • 设置

  • Authing 令牌
  • 私有化部署方案

  • 常见问题 FAQ

¶ PC 网站使用小程序扫码登录

更新时间: 2022-11-08 14:17:48
编辑

这是 Authing 的一个开创性的设计,在 Authing 中开启扫描小登录二维码登录后可以获得微信官方的实名用户信息, 用户一键授权即可以真实号码完成注册或者登录,为开发者建立以手机号码为基础的账号体系。

  • 应用场景:PC 网站;
  • 概述:在 PC 网站应用中展示小程序二维码,然后使用微信扫码登录应用;
  • 优势:可以获取到微信用户的手机号与实名信息;

你可以点击此处体验小程序扫码登录 (opens new window)。

Sample

¶ 示例代码

你可以在此获取示例代码:https://github.com/authing/wechat-eco-solution (opens new window)。

¶ 第一步:在微信公众平台创建一个小程序(可选)

默认情况下,小程序扫码登录会使用 Authing 提供的默认小程序,如果你需要有更强的品牌定制能力,或者想让通过小程序扫码登录的用户微信账号和自己的其他微信公众平台打通,你需要申请自己的小程序。如果你属于这两种场景的一种:

请前往 微信公众平台 (opens new window)指引创建一个微信小程序,你需要记录下该应用的 App ID 和 App Secret,后面需要用到。

同时你需要联系我们获取小登录的源码,详情请咨询 Authing 售后服务人员。

¶ 第二步:在 Authing 控制台配置微信 PC 小程序扫码应用

在控制台的社会化登录配置页面,找到微信 PC 小程序扫码登录,填入以下配置:

  • Logo: 上传后的 Logo,将作为小程序二维码中央的 Logo;
  • 登录后回调链接: 此链接一般填你的业务地址,如果配置了这个链接,用户在完成登录之后,浏览器将会携带用户信息跳转到该页面;
  • AppID: 小程序的 AppID,选择私有化小程序的用户填;
  • AppSecret: 小程序的 AppSecret,选择私有化小程序的用户填。

¶ 第三步:开始开发接入

小程序扫码登录支持三种接入方式:使用 JavaScript SDK、使用嵌入登录组件、 使用托管登录页。每种不同的接入方式各有优劣点,你可以根据自己的业务需求来选择合适的方式。

以下是各种方式的优劣对比:

接入方式优势劣势
使用 JavaScript SDK接入简单,只需要几行代码。可自定义程度最高。
使用嵌入登录组件接入简单,只需要几行代码。可以将该组件集成到你的应用。自定义程度相对较高
使用托管登录页运维简单,由 Authing 负责运维。每个用户池有一个独立的二级域名。如果需要嵌入到你的应用,需要使用弹窗模式登录,即:点击登录按钮后,会弹出一个窗口,内容是 Authing 托管的登录页面,或者将浏览器重定向到 Authing 托管的登录页。
选择接入方式
使用 SDK
Loading...

实现微信 PC 小程序扫码登录,你只需要实现以下几行代码:

  • 通过应用 ID 初始化 AuthenticationClient,你可以在控制台的应用列表页查看应用 ID。
  • 调用 authenticationClient.wxqrcode.startScanning 方法,第一个参数传入挂载的 DOM 元素节点 ID, 第二个参数指定 onSuccess 和 onError 回调函数。
  • 用户成功登录之后,你可以在 onSuccess 回调函数中得到用户信息;如果登录失败,可以在 onError 回调函数中获取到错误码和错误信息。完整的错误码请见: 错误码列表。
import { AuthenticationClient } from 'authing-js-sdk'

const authenticationClient = new AuthenticationClient({
  appId: 'AUTHING_APP_ID',
  appHost: 'https://xxx.authing.cn',
})

const onScanningSuccess = async (userInfo: any, ticket: string) => {
  const { token } = userInfo
  if (!token) {
    // 轮询接口不会返回完整用户信息,需要使用 ticket 换取
    userInfo = await authenticationClient.wxqrcode.exchangeUserInfo(ticket)
  }
}

authenticationClient.wxqrcode.startScanning('qrcode', {
  onSuccess: onScanningSuccess,
  onError: (message) => onFail && onFail(`${message}`),
})

¶ 接下来

获取到用户信息之后,你可以得到用户的身份凭证(用户信息的 token 字段),你可以在客户端后续发送给后端服务器的请求中携带上此 token, 以 axios 为例:

const axios = require("axios");
axios
  .get({
    url: "https://yourdomain.com/api/v1/your/resources",
    headers: {
      Authorization: "Bearer ID_TOKEN",
    },
  })
  .then((res) => {
    // custom codes
  });

在后端接口中需要检验此 token 的合法性,来验证用户的身份,验证方式详情请见验证用户身份凭证(token)。识别用户身份之后,你可能还需要对该用户进行权限管理,以判断用户是否对此 API 具备操作权限。

  • PC 网站使用小程序扫码登录
  • 示例代码
  • 第一步:在微信公众平台创建一个小程序(可选)
  • 第二步:在 Authing 控制台配置微信 PC 小程序扫码应用
  • 第三步:开始开发接入
  • 接下来

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司