Authing 知识库
🛠 开发资源🥂 集成案例🔭 常见问题🖥 控制台
3.0.0
3.0.0
  • 欢迎
  • Authing 概述
  • 快速开始
    • 注册 Authing 开发者账号
    • 第一个应用
    • 基础概念
    • 实现单点登录
    • 控制台概览
    • 部署模型和价格
    • 最佳开发实践
    • 我该如何选择 Authing 的技术
  • 进阶指南
    • 理解认证和授权
      • 用户名 - 密码认证
      • 邮箱 - 密码认证
      • 手机 - 验证码认证
      • JWT Token 释义及使用
    • 验证 Token
    • 配置用户权限
    • 迁移老数据进 Authing
    • 错误代码
  • 认证
    • 接入 OAuth 2.0
      • 创建 OAuth 应用
      • 使用 OAuth 授权
    • 接入 OpenID Connect
      • 创建 OIDC 应用
      • 使用 OIDC 授权
      • 理解 OIDC 流程
      • OIDC 常见问题
    • 接入 SAML
      • 创建 SAML Identity Provider 应用
      • 创建 SAML Service Provider 应用
      • 理解 SAML 流程
      • 同时使用 Authing 作为 SP 和 IdP
      • 使用 SAML Identity Provider
        • 在阿里云访问管理中使用
        • 在腾讯云访问管理中使用
        • 在 Auth0 中使用
      • 使用 SAML Service Provider
        • 与 Auth0 SAML IdP 对接
        • 与 SSOCircle SAML IdP 对接
    • 接入 LDAP
      • 配置 LDAP 服务
      • 使用 Authing 的 LDAP 用户目录
    • 接入 Active Directory
  • 社会化登录
    • 接入 Web 端社会化登录
      • GitHub 登录
      • 微信 PC 扫码登录
      • 微信 APP 内网页登录
      • 企业微信(第三方应用)网页授权登录
      • 企业微信(第三方应用)扫码登录
      • 企业微信(企业内部)扫码登录
      • 新浪微博登录
      • 钉钉登录
      • QQ 登录
      • 配置登录授权 Scope
    • 接入移动端社会化登录
      • 微信登录
      • 支付宝登录
    • 接入小程序登录
      • 小程序登录
        • 用户登录凭证(code)最佳实践
      • APP 拉起小程序登录
    • 打通微信账号体系
  • 扫码登录
    • 小程序扫码登录
      • 接入私有化小程序
    • APP 扫码登录
      • 快速接入
      • Web 端 SDK
      • 完整接口列表
      • 自定义配置项
      • 扫码登录原理
  • 移动应用登录
    • 移动应用 SSO
      • 自动检测登录
      • 唤起 App 登录
    • 移动应用身份提供商
  • 授权
    • Authorization 基础概念
      • 什么是基于角色的管理(RBAC)
      • 什么是基于属性的管理(ABAC)
      • 什么是零信任网络
    • Authorization at Authing
    • 接入 RBAC
    • 接入 ABAC
    • 接入组织机构管理
  • 扩展能力
    • 自定义认证流程(Pipeline)
      • 创建你的第一个 Pipeline 函数
      • Pipeline 函数开发指南
      • 应用场景
      • user 对象
      • context 对象
      • 使用环境变量
      • 可用的 Node Modules
      • 如何调试
      • Node SDK
      • GraphQL API
      • 常见问题
      • 私有化部署
    • 使用 Webhook
    • 自定义用户字段
  • 开发资源
    • 开发资源
    • API(GraphQL)
    • Guard for Web
      • 自定义 Guard 的 UI 样式
    • Guard for Mobile
      • Guard for React Native
    • Guard VS 自定义 UI
    • SDK for 单点登录
    • SDK for JavaScript
      • 查询用户权限
      • 绑定社会化登录
      • 自定义用户字段
      • 管理 MFA 口令
      • 自定义请求链接
    • SDK for Node.js
      • 权限控制
      • 查询用户权限
      • 组织机构管理
      • 老版权限控制(deprecated)
      • Pipeline 函数
      • 自定义用户字段
      • 绑定社会化登录
      • 管理 MFA 口令
      • 自定义请求连接
    • SDK for React Native
    • SDK for 微信小程序
    • SDK for Java
    • SDK for Objective-C
    • SDK for Python
    • SDK for Go
    • SDK for PHP
    • 函数计算(FaaS)
  • 通信
    • 邮件
    • SMS
  • MFA
    • 配置 MFA 安全口令
      • 使用 Microsoft Authenticator 添加 MFA 令牌
    • 接入 MFA
  • 安全
    • 配置 Web 安全域
    • 配置用户池密码强度
    • 配置密码加密函数
  • 其他
    • 常见问题
    • 集成案例
      • Authing 与 AWS 集成案例
      • 函数计算与 AaaS 集成案例
      • Odoo 集成案例
      • 社会化登录集成案例
    • 社交互联数据
    • 为 Authing 贡献 SDK
      • 了解 Authing 的模块
Powered by GitBook
On this page
  • 初始化
  • Pipeline 函数类型
  • 创建 Pipeline 函数
  • 修改 Pipeline 函数
  • 根据 id 查询 Pipeline 函数
  • 删除 Pipeline 函数
  • 查询用户池 Pipeline 函数列表
  • 设置环境变量
  • 删除环境变量
  • 查询用户池环境变量列表

Was this helpful?

  1. 开发资源
  2. SDK for Node.js

Pipeline 函数

Previous老版权限控制(deprecated)Next自定义用户字段

Last updated 5 years ago

Was this helpful?

初始化

使用以下接口时,请先完成初始化工作,请参考:

Pipeline 函数类型

目前共支持三种类型的 pipeline 函数:

名称

说明

Pre-Register Pipeline

注册前 Pipeline,会在每次用户正式进入注册逻辑前触发,开发者可用此实现注册邮箱白名单、注册 IP 白名单等功能。

Post-Register Pipeline

注册后Pipeline, 会在每次用户完成注册逻辑 (但还未保存至数据库) 之后触发,开发者可用此实现往数据库写入自定义 metadata 、新用户注册 webhook 通知等功能。

Post-Authentication Pipeline

认证后 Pipeline 会在每次用户完成认证之后触发,开发者可用此实现往 token 加入自定义字段等功能。

创建 Pipeline 函数

一个函数也叫 Rule(规则),所以 SDK 命名方式如 addRule、updateRule 等。

Authing.pipeline.createRule(input)

  • 参数

    • input <object>

      • name: <string> 名称、必填。

      • type: <string> 类型,必填。可选值见 Pipeline 函数类型。

      • code: <string> 代码,必填。见 。

      • description: <string> 描述信息,可选。

  • 使用方法

const rule = await authing.pipeline.createRule({
  name: "注册白名单",
  code: "------函数代码------",
  type: "PRE_REGISTER"
})
  • 返回数据

    • _id: Rule 函数 ID

    • enabled: 是否开启。

{
    _id: "5e35841c691196a1ccb5b6f7",
    name: "注册白名单",
    description: "",
    type: "PRE_REGISTER",
    enabled: true,
    faasUrl: "云函数链接",
    code: "代码",
    createdAt: '2020-02-16T20:47:04+08:00',
    updatedAt: '2020-02-16T20:47:04+08:00'
}

修改 Pipeline 函数

一个用户池最多创建 50 个 Pipeline 函数。

Authing.pipeline.updateRule(input)

  • 参数

    • input <object>

      • _id: <string> Rule 函数 ID,必填。

      • name: <string> 名称,选填。

      • type: <string> 类型,选填。可选值见 Pipeline 函数类型。

      • description: <string> 描述信息,选填。

      • enabled: <string> 是否开启,选填。

  • 使用方法

// 停用此函数
const rule = await authing.pipeline.updateRule({
  _id: "5e35841c691196a1ccb5b6f7",
  enabled: false
})
  • 返回数据

{
    _id: "5e35841c691196a1ccb5b6f7",
    name: "注册白名单",
    description: "",
    type: "PRE_REGISTER",
    enabled: false,
    faasUrl: "云函数链接",
    code: "代码",
    createdAt: '2020-02-16T20:47:04+08:00',
    updatedAt: '2020-02-16T20:47:04+08:00'
}

根据 id 查询 Pipeline 函数

Authing.pipeline.ruleById(_id)

  • 参数

    • _id <string> 必填。

  • 使用方法

const rule = await authing.pipeline.ruleById("5e35841c691196a1ccb5b6f7")
  • 返回数据

{
    _id: "5e35841c691196a1ccb5b6f7",
    name: "注册白名单",
    description: "",
    type: "PRE_REGISTER",
    enabled: false,
    faasUrl: "云函数链接",
    code: "代码",
    createdAt: '2020-02-16T20:47:04+08:00',
    updatedAt: '2020-02-16T20:47:04+08:00'
}

删除 Pipeline 函数

Authing.pipeline.deleteById(_id)

  • 参数

    • _id <string> 函数 ID, 必填。

  • 使用方法

const res = await authing.pipeline.deleteById("5e35841c691196a1ccb5b6f7")
  • 返回数据

    • code: 为 200 时表示成功,其他 code 含义见下文错误代码列表。

{
    code: 200,
    message: "操作成功!"
}

查询用户池 Pipeline 函数列表

Authing.pipeline.all()

  • 参数: 无

  • 使用方法

const rules = await authing.pipeline.all()
  • 返回数据

    • totalCount: 总数

    • list: 函数列表

{
    totalCount: 1,
    list: [
        {
            _id: "5e35841c691196a1ccb5b6f7",
            name: "注册白名单",
            description: "",
            type: "PRE_REGISTER",
            enabled: false,
            faasUrl: "云函数链接",
            code: "代码",
            createdAt: '2020-02-16T20:47:04+08:00',
            updatedAt: '2020-02-16T20:47:04+08:00'
        }
    ]
}

设置环境变量

Authing.pipeline.setEnv()

  • 参数

    • key: <string> 必填。

    • value: <string> 必填。

  • 使用方法

const env = await authing.pipeline.setEnv("KEY1","VALUE1")
  • 返回数据:返回最新的所有环境变量列表。

{
    totalCount: 1,
    list: [
        {
            key: "KEY1",
            value: "VALUE1"
        }
    ]
}

删除环境变量

Authing.pipeline.removeEnv(key)

  • 参数

    • key <string> 必填。

  • 使用方法

const env = await authing.pipeline.setEnv("KEY1")
  • 返回数据:返回最新的所有环境变量列表。

{
    totalCount: 0,
    list: []
}

查询用户池环境变量列表

环境变量的 scope 为整个用户池,用户池内的所有 Pipeline 函数共用所有环境变量。

Authing.pipeline.env()

  • 参数:无。

  • 使用方法

const env = await authing.pipeline.env()
  • 返回数据

{
    totalCount: 1,
    list: [
        {
            key: "KEY1",
            value: "VALUE1"
        }
    ]
}

code: <string> 代码,选填。见

使用方法请见:

SDK for Node.js
Pipeline 函数开发指南
Pipeline 函数开发指南
如何在 Pipeline 函数中使用环境?