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

  • 对用户进行认证

  • 对用户进行权限管理

  • 授权

  • 管理用户账号

  • 管理用户目录

  • 同步中心

  • 应用

  • 成为联邦认证身份源

  • 连接外部身份源(IdP)

  • 微信生态全场景能力

  • 迁移用户到 Authing

  • 管理组织机构

  • 安全设置

  • 品牌化

  • 自动化

  • 审计日志

  • 设置

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

  • 常见问题 FAQ

¶ 微信小程序

更新时间: 2022-11-11 19:10:33
编辑

¶ 场景介绍

  • 概述:Authing 通过 SDK 为开发者提供了一种快速在小程序中获取用户信息并完成登录的方法。通过 Authing 的 SDK 可以方便地获取微信提供的用户身份标识,快速建立以手机号码为基础的账号体系。
  • 应用场景:小程序
  • 终端用户预览图:

¶ 注意事项

  • 如果你未开通 Authing 控制台账号,请先前往 Authing 控制台 (opens new window) 注册开发者账号;

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

¶ 创建微信小程序

前往 微信公众平台 (opens new window)创建一个 微信小程序。

创建完成之后,你需要记录下该应用的 AppID 和 AppSecret,后面需要用到。

¶ 配置服务器域名

之后需在微信小程序管理后台的 开发 -> 开发管理 -> 开发设置 页面中,设置 服务器域名 中的 request 合法域名 为core.authing.cn。

¶ 配置业务域名(可选)

若你需要在微信小程序中使用 webview 调用 Authing 托管登录页,需要配置业务域名。

在微信小程序管理后台的 开发 -> 开发管理 -> 开发设置 页面中,找到「业务域名」配置,点击「开始配置」

扫码登录后,在业务域名配置中填入你的应用认证地址,并且下载校验文件备用

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

2.1 请在 Authing 控制台的「社会化身份源」页面,点击「创建社会化身份源」按钮,进入「选择社会化身份源」页面。

2.2 在「选择社会化身份源」页面,点击「微信」卡片,进入「微信登录模式」页面。

2.3 继续点击「小程序」登录模式,或者点击 … 添加 打开「小程序」配置页面。

2.4 在「小程序」配置页面,填写相关的字段信息。

字段描述
唯一标识a. 唯一标识由小写字母、数字、- 组成,且长度小于 32 位。
b. 这是此连接的唯一标识,设置之后不能修改
显示名称这个名称会显示在终端用户的登录界面的按钮上
小程序 ID步骤 1 中获得的 AppID
小程序密码步骤 1 中获得的 AppSecret
域名校验文件如果你需要在小程序中使用 webview 调用 Authing 的托管登录页,需要上传步骤 1 中下载的小程序提供的校验文件
登录模式开启「仅登录模式」后,只能登录既有账号,不能创建新账号,请谨慎选择

2.5 配置完成后,点击「创建」或者「保存」按钮完成创建。

¶ 第三步:开发接入

从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装第三方包,详情请见: npm 支持 | 微信开放文档 (opens new window)。

¶ 安装 npm 包

$ yarn add authing-wxapp-sdk --save

# OR

$ npm install authing-wxapp-sdk --save

点击微信开发者工具中的菜单栏:工具 --> 构建 npm:

勾选 使用 npm 模块 选项(如果有这个选项,Stable 1.05.2204250 for MacOS 就没有这个选项):

¶ 初始化 SDK

初始化AuthenticationClient需要传入AppId(应用 ID):

你可以在控制台的 应用 中查看自己的应用列表。

const { AuthenticationClient } = require("authing-wxapp-sdk")

const authing = new AuthenticationClient({
  userPoolId: "YOUR_USERPOOL_ID",
})

¶ 调用登录方法

AuthenticationClient 提供了 loginByCode 方法,可以通过微信的授权完成静默登录:

const { code } = await wx.login()
// 无需用户授权
const user = await authing.loginByCode(code); // 成功登录,将 token 写入微信 Storage

// 登录之后可以进行此操作
await authing.updateProfile({
  nickname: 'Bob'
})

在用户完成登录之后,SDK 会将用户的 token 写入到微信的 Storage 中,后续请求会自动携带 token 访问。

后续用户再次打开小程序,如果小程序的 Storage 中保存有用户的 token,访问 authing 的请求将会自动带上该 token。

// 该请求可以成功,因为该用户出于登录状态。
await authing.updateProfile(
  nickname: 'Mick'
)

详细请查看文档:小程序 SDK。

¶ 接下来

获取到用户信息之后,你可以得到用户的身份凭证(用户信息的 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 具备操作权限。

  • 场景介绍
  • 注意事项
  • 第一步:在微信公众平台创建一个小程序
  • 第二步:在 Authing 控制台配置微信小程序应用
  • 第三步:开发接入

用户身份管理

集成第三方登录
手机号闪验 (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号

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