# context 对象
'context 对象中保存了当前认证流程的上下文,包括认证手段、身份提供方,以及请求 IP, 地址等。'
# 属性
属性名 | 类型 | 说明 |
---|---|---|
protocol | string | 认证协议。具体说明见下文。 |
connection | string | 身份提供方。具体说明见下文。 |
userPoolId | string | 用户池 ID |
userPoolName | string | 用户池 名称 |
userPoolMetadata | object | 用户池配置 |
appId | string | 当前用户的 ID |
appName | string | 当前应用的 名称 |
appMetadata | object | 当前应用的配置信息 |
request | object | 当前请求的详细信息,包括: ip : 客户端 IP geo : 通过 IP 解析的客户端地理位置 body : 请求体 query : query string 对象,你可以通过 request.query.xxx 获取对应 query 参数 |
# 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 支付宝登录 。 |
# 注册前、注册后
注册前、注册后 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"
}