¶ context 对象
更新时间: 2025-08-20 12:33:28
context 对象中保存了当前认证流程的上下文,包括认证手段、身份提供方,以及请求 IP, 地址等。
¶ 属性
| 属性名 | 类型 | 说明 |
|---|---|---|
| protocol | string | 认证协议。具体说明见下文。 |
| connection | string | 身份提供方。具体说明见下文。 |
| userPoolId | string | 用户池 ID |
| userPoolName | string | 用户池 名称 |
| userPoolMetadata | object | 用户池配置 |
| appId | string | 当前用户的 ID |
| appName | string | 当前应用的 名称 |
| appMetadata | object | 当前应用的配置信息 |
| request | object | 当前请求的详细信息,包括:ip: 客户端 IPgeo: 通过 IP 解析的客户端地理位置body: 请求体query: query string 对象,你可以通过 request.query.xxx 获取对应 query 参数 |
| accessTokenTarget | Enum: programmaticAccount, user | 仅在签发 accessToken 前的 pipeline 中有值,表示当前是为编程访问账号还是用户签发 accessToken |
¶ protocol
认证协议。
| 可能值 | 说明 |
|---|---|
| password | 基于账号密码的认证方式 |
| sms | 基于短信验证码的认证方式 |
| social | 社会化登录认证默认,当使用 Authing 集成的社会化登录手段登录时为此值。 |
| ldap | 使用 LDAP 进行认证。有关如何接入 LDAP 请见 配置 LDAP 服务。 |
| saml | 使用 SAML 进行认证。有关如何接入 SAML 请见 接入 SAML。 |
| oidc | 使用 OIDC 协议认证。有关如何接入 OIDC 请见使用 OIDC 授权。 |
¶ connection
身份提供方。
| 可能值 | 说明 |
|---|---|
| ldap | 使用 lDAP 协议进行登录。 一个 Authing LDAP 服务对应一个 Authing 用户目录或第三方用户目录,详情请见 配置 LDAP 服务 和 使用 Authing 的 LDAP 用户目录。 |
| saml | 使用 SAML 协议进行登录。有关如何接入 SAML 请见 接入 SAML。 |
| oidc | 使用 OIDC 协议认证。有关如何接入 OIDC 请见 使用 OIDC 授权。 |
| github | 使用 GitHub 登录。详情见 接入 GitHub 登录。 |
| PC 微信扫码登录。详情见 接入 PC 微信扫码登录。 | |
| wechat:miniprogram | 使用微信小程序登录。详情见 接入微信小程序登录。 |
| wechatwork | 使用企业微信登录。 |
| 使用 QQ 网页版登录。详情见 接入 QQ 登录。 | |
| 使用微博网页版登录。详情见 接入微博登录。 | |
| dingtalk | 使用钉钉网页版登录。详情见 接入钉钉登录。 |
| alipay | 使用支付宝 APP 登录。详情见 接入移动 APP 支付宝登录 。 |
¶ data 对象
¶ 注册前、注册后
注册前、注册后 Pipeline 中 data 对象部分请求字段如下:详情请见 Authing GraphQL 调试器 (opens new window) 用户鉴权 - 注册接口。
email, phone, unionid 等字段不一定同时存在,使用前请先判断其是否存在!如
const email = context.request.body.email;
if (email) {
// 表示是用邮箱注册
// 可以进行邮箱注册白名单的逻辑
if (!email.endsWith("example.com")) {
return callback(new Error("Access Denied!"));
}
}
| 字段名 | 类型 | 是否一定存在 | 说明 |
|---|---|---|---|
| username | string | 否 | 用户名,使用用户名注册的时候不为空。 |
| string | 否 | 邮箱,使用用户名注册的时候不为空。 | |
| phone | string | 否 | 手机号,使用手机号注册的时候不为空。 |
| forceLogin | boolean | 否 | 注册时候是否自动进行登录流程,默认为 false |
| profile | object | 是 | 用户注册所填的数据用户信息 |
¶ 认证前、认证后
认证前、认证后 Pipeline 中 data 对象部分请求字段如下:
这些字段不一定全部存在,使用前请先判断是否存在!
| 字段名 | 类型 | 是否一定存在 | 说明 |
|---|---|---|---|
| username | string | 否 | 用户名,使用用户名登录的时候不为空。 |
| string | 否 | 邮箱,使用邮箱登录的时候不为空。 | |
| phone | string | 否 | 手机号,使用手机号登录的时候不为空。 |
¶ userPool 对象
用户池相关信息。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | string | 用户池 ID |
| name | string | 用户池名称 |
¶ geo 属性
示例数据:
{
"province": "北京市",
"city": "北京市",
"adcode": "110000",
"rectangle": "116.0119343,39.66127144;116.7829835,40.2164962"
}