Authing 文档
文档
快速开始
概念
使用指南
开发集成
应用集成
加入 APN
多租户(内测版)
旧版
快速开始
概念
使用指南
开发集成
应用集成
加入 APN
多租户(内测版)
旧版
使用指南
  • 快速开始

  • 对用户进行认证
  • 对用户进行权限管理
  • 授权
  • 管理用户账号
  • 管理用户目录
  • 同步中心(BETA)
  • 自建应用
  • ASA 表单代填
  • 单点登录 SSO
  • 成为联邦认证身份源
  • 连接外部身份源(IdP)
  • 打通微信生态
  • 迁移用户到 Authing
  • 管理组织机构
  • 自动化
    • 使用 Webhook 监听用户事件
    • 自定义认证流程(Pipeline)
      • 创建你的第一个 Pipeline 函数
      • Pipeline API Reference
      • Pipeline 的应用场景
      • Pipeline User 对象
      • Pipeline Context 对象
      • 在 Pipeline 中使用环境变量
      • 可用的 Node Modules
      • 如何调试
      • 常见问题
      • 私有化部署
    • 自定义数据库
    • 配置自定义密码函数
  • 审计日志
  • 配置安全信息

  • 配置用户池信息

  • 部署方案
  • 常见问题 FAQs

    ¶ 可用的 Node Modules

    更新时间: 2021-06-17 12:49:23

    目前 Authing Pipeline 中可以使用以下 Node Modules:

    • Authing SDK for Node.js (opens new window)
    • 网络请求库 axios (opens new window)
    • lodash
    • Authing 内置工具集函数 utils

    ¶ Authing SDK for Node.js

    出于安全考虑, Authing 会通过特殊方式,使用你的用户池 ID(userPoolId) 和用户池密钥(secret) 初始化 authing-js-sdk,此过程不会将你的用户池密钥发送到公网。你可以使用使用全局变量 authing,请勿再次初始化 SDK!

    开发者可以直接使用初始化过后的 authing 实例,无需手动初始化!Authing Pipeline 会自动帮助开发者 take care 初始化过程。

    如下所示:

    async function pipe(user, context, callback) {
      if (!user.email.endsWith('@authing.cn')) {
        return callback(null, user, context)
      }
    
      try {
        await authing.roles.addUsers('ROLE', [user.id])
      } catch (error) { }
    
      callback(null, user, context)
    }
    

    解释一下:

    • 2-4 行判断用户邮箱是否已 @authing.cn 结尾,如果不是,可以直接跳过此 Pipeline 函数。
    • 6-11 行调用 SDK 的角色管理 SDK API,授权用户角色 ROLE。
      • 在这里我们使用了 env.ROOT_GROUP_ID 通过环境变量来获取组 ID,这样可以避免硬编码。关于如何在 Pipelien 函数中使用环境变量,请见使用环境变量。
    • 13 行调用回调函数 callback,第一个参数为 null,表示没有错误抛出,可以继续执行下面的认证流程。关于如何使用 callback 以及 Pipelien 函数的完整 API,请见 Pipeline 函数 API 文档。

    ¶ 网络请求库

    目前 Authing 支持使用 axios,且支持 async/await 语法 🚀!

    axios 详细文档请移步其官方文档 (opens new window)。

    ¶ lodash

    需要开发者手动导入:

    const _ = require("lodash")
    

    详细文档请移步其官方文档 (opens new window)。

    ¶ 内置工具集 utils

    Authing 内置封装了一些实用的函数,供开发者直接调用。

    需要开发者手动导入:

    const utils = require("./utils")
    

    ¶ 检查 IP 是否位于 IP 段内

    使用方法:

    utils.ipRangeCheck(IP, [start, end])
    

    返回值为 boolean。

    示例:以下 Pipeline 函数实现注册 IP 段白名单功能。

    async function pipe(context, callback) {
      const utils = require("./utils")
      const ip = context.ip
      if (ip && utils.ipRangeCheck(ip, ["110.53.254.1", "110.53.254.255"])) {
        return callback(null, context)
      }
      return callback(new Error('Access Denied!'))
    }
    
    

    ¶ 其他 Node 自带 Module

    Authing Pipeline 使用 node8 引擎,node8 的所有内置模块 (opens new window)均可使用,如 querystring 等。

    上一篇: 在 Pipeline 中使用环境变量 下一篇: 如何调试

    本文是否有解决您的问题?

    如果遇到其他问题,你可以在 authing-chat/community 联系我们。

    • Authing SDK for Node.js
    • 网络请求库
    • lodash
    • 内置工具集 utils
    • 其他 Node 自带 Module

    用户身份管理

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

    企业内部管理

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

    开发者

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

    公司

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

    京ICP备19051205号

    beian京公网安备 11010802035968号

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