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
  • 配置 Webhook
  • 参数解释
  • 管理 Webhook
  • 调试 Webhook
  • 支持的事件
  • 事件列表
  • 请求类型
  • 附带的数据
  • Request headers
  • Request body

Was this helpful?

  1. 扩展能力

使用 Webhook

Webhooks 允许你对用户注册、登录等行为进行监听,从而对其做一些自定义处理。

Previous私有化部署Next自定义用户字段

Last updated 4 years ago

Was this helpful?

使用 Webhook 的方法是在 Authing 平台中配置 HTTP URL,当你的用户登录、注册、修改密码后,都会给远程 HTTP URL 发送一个 POST 请求。

配置 Webhook

点击进入 用户池 - 扩展能力- Webhook 页面:

点击页面的「添加」按钮即可开始配置,如下图所示:

参数解释

参数名称

参数解释

请求地址

远程 HTTP URL 地址

请求密钥

设置好密钥(值由开发者自定)后,Authing 将在每个请求中(HTTP Header:X-Authing-Token)附带此密钥,你可以通过验证此密钥来避免一些非法操作

请求数据格式

指定发起 Webhook 请求时 Request body 的数据格式,可选值有 application/json 和 application/x-www-form-urlencoded

触发事件

激活

是否启用此 Hook

管理 Webhook

在创建完 Webhook 之后可以看到详细的事件记录:

刚创建好的 Hook 请求事件都为空,这时你可以点击「测试」触发一个「测试事件」:

测试成功后你将看到详细的请求信息和返回信息。

调试 Webhook

调试 Webhook 的方法如下图所示:

点击后将发送一个 Post 请求到配置好的 HTTP URL 中。

请求数据为:

{
    "description": "A test from Authing Webhook"
}

支持的事件

事件列表

事件名

事件描述

login

登录事件,当用户进行登录时会触发此事件,无论是否登录成功都会触发。

register

注册事件,当用户注册或管理员手动创建用户时会触发此事件,无论是否成功都会触发

change-password

修改密码事件,当用户修改密码或管理员手动修改密码时会触发此事件,无论成功与否都会触发

change-user-info

修改用户信息时间,当用户修改自己的信息或管理员手动修改用户信息时会触发词时间,无论成功与否都会触发

请求类型

指定发起 Webhook 请求时 Request body 的数据格式,可选值有 application/json 和 application/x-www-form-urlencoded

附带的数据

每一个事件都会携带一些特定的请求参数。

Request headers

我们会在 HTTP POST 头中携带一些自定义头信息,如下表所示:

Header

描述

User-Agent

值为 'Authing-hook',表示此次请求来自 Authing

X-Authing-Token

请求秘钥,值为你在 Webhook 配置中设置的秘钥,对此秘钥进行验证,可以用来防止第三方的恶意请求

X-Authing-Event

本次 hook 触发的事件,值为上述 Events 列表中的一个

Request body

请求体中也会携带一些特定参数

参数名

描述

success

本次事件是否成功,0 为失败,1 为成功

message

本次事件的结果描述

executed_at

本次事件执行时的时间戳,单位为 ms

params

用户进行此次操作时携带的参数

emit_by

change-password、change-user-info 和 register 事件特有,表示本次事件的发起者,值为用户自己或用户管理员的对象数据

user_updated

change-user-info 事件特有,内容为用户修改后的用户信息

Request 示例

  • headers

    {
      "Accept": "application/json, text/plain, */*",
      "Content-Type": "application/json; charset=UTF-8",
      "User-Agent": "authing-hook",
      "X-Authing-Token": "",
      "X-Authing-Event": "login",
      "Content-Length": 337
    }
  • login event body

    {
      "success": 1,
      "message": "密码修改成功",
      "executed_at": 1559453952531,
      "params": {
          "_id": "5cf3608753c403913e81f74b",
          "password": "ATtLOFJ6mGWCju1GFsv6b0jhlFTlp7qumPYSEze197R7G0hUEg3gDVBwRf2n0O6FJFeF9bsVryzkZDElILVSRAbjYU3GPYNDzUMAfo3pQ7QNKu5JuZOdwgn8+5NllFUKNK/AgyJPd7QNfO7kH1x8J9L7S65NQh/n5TzgcwaveLg=",
          "registerInClient": "59f86b4832eb28071bdd9214"
      },
      "emit_by": {
          "_id": "5c00a5fbec1083000f5b27d4",
          "username": "",
          "email": "xieyang@dodora.cn",
          "phone": ""
      }
    }
  • register event body

    {
      "success": 1,
      "message": "注册成功",
      "executedAt": 1559453155297,
      "params": {
          "_id": "590cd6b4832eb28071bdd9251"
          "email": "example@example.com",
          "password": "30f049f7ae9386d2ac2c203f5c4319a5",
          "registerInClient": "59f86b4832eb28071bdd9214",
          "username": "username",
          "registerMethod": "default:username-password",
          "nickname": "",
          "emailVerified": true
      }
    }
  • change-password event body

    {
      "success": 1,
      "message": "注册成功",
      "executedAt": 1559453831284,
      "params": {
          "__v": 0,
          "email": "example@example2.com",
          "registerInClient": "59f86b4832eb28071bdd9214",
          "salt": "fhnli5d0ahoi",
          "_id": "5cf3608753c403913e81f74b",
          "updatedAt": "",
          "country": "",
          "postalCode": "",
          "region": "",
          "locality": "",
          "streetAddress": "",
          "formatted": "",
          "address": "",
          "locale": "",
          "zoneinfo": "",
          "birthdate": "",
          "gender": "",
          "website": "",
          "preferredUsername": "",
          "profile": "",
          "middleName": "",
          "familyName": "",
          "givenName": "",
          "name": "",
          "phoneCode": "",
          "oauth": "",
          "isDeleted": false,
          "blocked": false,
          "signedUp": "2019-06-02T05:37:11.257Z",
          "lastLogin": "2019-06-02T05:37:11.257Z",
          "registerMethod": "default:username-password",
          "loginsCount": 0,
          "password": "bdcff42caccb7e2a889bfb490d91e67c",
          "browser": "",
          "photo": "https://usercontents.authing.cn/authing-avatar.png",
          "company": "",
          "nickname": "",
          "username": "example2",
          "phoneVerfified": false,
          "emailVerified": true,
          "phone": ""
      },
      "emit_by": {
          "_id": "5c00a5fbec1083000f5b27d4",
          "username": "root",
          "email": "xieyang@dodora.cn",
          "phone": ""
      }
    }
  • change-user-info event body

    {
      "success": 1,
      "message": "用户信息修改成功",
      "executed_at": 1563370136729,
      "params": {
        "_id": "5d2d727b48ceaceff6d792c1",
        "phone": "13812341235",
        "registerInClient": "5cbd6716aaaa70cb9a58d86f"
      },
      "emit_by": {
        "_id": "5cbd66dfaaaa7020e758d86a",
        "username": "",
        "email": "root@example.com",
        "phone": ""
      },
      "userUpdated": {
        "_id": "5d2d727b48ceaceff6d792c1",
        "email": "authing@example.com",
        "registerInClient": "5cbd6716aaaa70cb9a58d86f",
        "salt": "g196j8ijf1oi",
        "__v": 0,
        "updatedAt": "",
        "country": "",
        "postalCode": "",
        "region": "",
        "locality": "",
        "streetAddress": "",
        "formatted": "",
        "address": "",
        "locale": "",
        "zoneinfo": "",
        "birthdate": "",
        "gender": "",
        "website": "",
        "preferredUsername": "",
        "profile": "",
        "middleName": "",
        "familyName": "",
        "givenName": "",
        "name": "",
        "phoneCode": "",
        "oauth": "",
        "isDeleted": false,
        "blocked": false,
        "signedUp": "2019-07-16T06:45:15.935Z",
        "lastLogin": "2019-07-16T06:45:15.935Z",
        "registerMethod": "default:username-password",
        "loginsCount": 0,
        "password": "3f1c2988c870c7225320a2c8a38ee27d",
        "device": "",
        "browser": "",
        "photo": "https://usercontents.authing.cn/authing-avatar.png",
        "company": "",
        "nickname": "",
        "username": "example",
        "phoneVerfified": false,
        "emailVerified": false,
        "phone": "13812341235"
      }
    }

请查看支持的事件