使用 Webhook

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

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

配置 Webhook

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

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

参数解释

参数名称

参数解释

请求地址

远程 HTTP URL 地址

请求密钥

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

请求数据格式

指定发起 Webhook 请求时 Request body 的数据格式,可选值有 application/jsonapplication/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/jsonapplication/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-inforegister 事件特有,表示本次事件的发起者,值为用户自己或用户管理员的对象数据

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"
      }
    }

Last updated