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
  • 属性
  • protocol
  • connection
  • data 对象
  • userPool 对象
  • geo 属性
  • oidcConfiguration

Was this helpful?

  1. 扩展能力
  2. 自定义认证流程(Pipeline)

context 对象

context 对象中保存了当前认证流程的上下文,包括认证手段、身份提供方,以及请求 IP, 地址等。

属性

属性名

类型

说明

protocol

string

认证协议。具体说明见下文。

connection

string

身份提供方。具体说明见下文。

ldapConfiguration

object

ldap 配置,在为 ldap 认证的情况下带有。具体说明见下文。

samlConfiguration

object

saml 配置,在为 saml 认证的情况下带有。具体说明见下文。

oidcConfiguration

object

OIDC 应用配置,在为 OIDC 认证的情况下带有。具体说明见下文。

data

object

GraphQL POST 请求数据。如在注册前 Pipeline 中,开发者可以获取邮箱、手机号、注册方式等信息。详细字段请见下文。

headers

object

原始请求头信息。

userPool

object

用户池详细信息。处于安全考虑,这里不包含 secret 和 token。具体说明见下文。

ip

string

请求者 IP。

geo

object

包含了请求者的地址信息以及经纬度坐标。具体说明见下文。

protocol

认证协议。

可能值

说明

basic

普通认证模式,基于用户名密码、手机号验证码。

social

社会化登录认证默认,当使用 Authing 集成的社会化登录手段登录时为此值。

ldap

saml

oidc

connection

身份提供方。

可能值

说明

authing

如使用用户名密码、手机号验证码,基于 Authing 的数据库进行验证。

ldap:<LDAP服务ID>

saml:<SAML Idp 服务 ID>

oidc:<OIDC 应用 ID>

social:github

social:wechat-pc

social:wechat-miniprogram

social:wechat-app

social:app2wxapp

social:wechat-officialaccount-web

social:qq-web

social:weibo-web

social:dingtalk-web

social:alipay-mobile

social:wechatwork-web

social:wechatwork-qrconnect

data 对象

email, phone, unionid 等字段不一定同时存在,使用前请先判断其是否存在!如

const email = context.data.userInfo.email
if(email) {
    // 表示是用邮箱注册
    // 可以进行邮箱注册白名单的逻辑
    
    if(!email.endsWith('example.com')){
        return callback(new Error('Access Denied!'))
    }
}

字段名

类型

说明

userInfo

object

用户注册所填的数据,如邮箱、手机号、浏览器 UA 等。

userInfo.registerInClient

string

注册用户池

userInfo.registerMethod

string

注册方式。若开发者自己使用 SDK 开发使用此接口,最好提供注册方式。如未提供,Authing 将从其他是否提供 unionid,email, phone, username 四个字段推测注册方式(优先级递减,比如同时提供 unionid 和 email,会被视为 unionid 方式注册)。

userInfo.unionid

string

社会化登录的 unionid。

userInfo.email

string

邮箱。

userInfo.phone

string

手机号。

userInfo.photo

string

用户头像。

这些字段不一定全部存在,使用前请先判断是否存在!

字段名

类型

说明

registerInClient

string

用户池 ID

phone

string

手机号

phoneCode

string

手机号验证码

unionid

string

社会化登录 unionid

openid

string

社会化登录 openid

email

string

邮箱

lastIP

string

登录 IP

browser

string

浏览器

userPool 对象

字段名

类型

说明

_id

string

用户池 ID

name

string

用户池名称

logo

string

用户池图标

registerDisabled

boolean

是否关闭注册

userPoolTypeList

array

用户池类型列表。每个类型内容如下:

{
      "_id": "5e193ceb71edb858dc54b8ef",
      "name": 'Web',
      "description": 'Web Application',
      "example": 'Web SDK',
      "image": ''
}

geo 属性

示例数据:

{
	"address": "湖南省长沙市",
	"address_detail": {
		"city": "长沙市",
		"city_code": "430100",
		"district": "",
		"province": "湖南省",
		"street": "",
		"street_number": ""
	},
	"point": {
		"x": "112.6534116",
		"y": "27.96920845"
	}
}

oidcConfiguration

  • _id: OIDC 应用 ID。

  • clientId: 用户池 ID。

  • redirect_uris: 回调链接列表。

  • token_endpoint_auth_method: 换取 token 认证模式。

  • grant_types: 授权模式。

  • id_token_signed_response_alg: id_token 签名算法。

  • authorization_code_expire: authorization_code 有效时间,单位为秒。

{
  image: 'https://usercontents.authing.cn/oauth/applications/Flw6fw74vCzeZR17ApcRARSxIE7A',
  redirect_uris: [ 'http://localhost:8888/oidc/handle' ],
  token_endpoint_auth_method: 'client_secret_post',
  grant_types: [ 'authorization_code', 'refresh_token' ],
  response_types: [ 'code' ],
  id_token_signed_response_alg: 'HS256',
  isDeleted: false,
  isDefault: true,
  authorization_code_expire: '600',
  id_token_expire: '3600',
  access_token_expire: '3600',
  cas_expire: '3600',
  _id: "5d9f78ace01c86293a9c0857",
  name: 'OIDC 应用名称',
  domain: 'domain',
  clientId: '5d9f78acb02d3e14484cfc37',
  description: '',
  when: 2019-10-10T18:30:04.784Z,
  client_id: '5d9f78ace01c86293a9c0857',
  client_secret: '6536f317ca56779ea9b0c4bde4869c66',
  __v: 0,
  css: '/* \n' +
    '  在此编辑认证页面的 css 代码\n' +
    '  如:\n' +
    '  body {\n' +
    '    background: #6699 !important;\n' +
    '  } \n' +
    '  用于修改背景色\n' +
    '*/',
  customStyles: {
    forceLogin: true,
    hideQRCode: false,
    hideUP: false,
    hideUsername: false,
    hideRegister: false,
    hidePhone: false,
    hideSocial: false,
    hideClose: false,
    placeholder: {
      username: '请输入用户名',
      email: '请输入邮箱',
      password: '请输入密码',
      confirmPassword: '请确认密码',
      verfiyCode: '请输入验证码',
      newPassword: '请输入新密码',
      phone: '请输入手机号',
      phoneCode: '4 位验证码'
    },
    qrcodeScanning: { interval: 1500, tips: '使用微信扫码登录' }
  }
}
Previoususer 对象Next使用环境变量

Last updated 5 years ago

Was this helpful?

使用 LDAP 进行认证。有关如何接入 LDAP 请见 。

使用 SAML 进行认证。有关如何接入 SAML 请见 。

使用 OIDC 协议认证。有关如何接入 OIDC 请见。

使用 lDAP 协议进行登录。 一个 Authing LDAP 服务对应一个 Authing 用户目录或第三方用户目录,详情请见 和 。

使用 SAML 协议进行登录。有关如何接入 SAML 请见 。

使用 OIDC 协议认证。有关如何接入 OIDC 请见 。

使用 GitHub 登录。详情见。

微信 PC 扫码登录。详情见。

使用微信小程序登录。详情见。

使用微信移动应用登录。详情见。

在移动应用 App 中拉起小程序登录。详情见。

使用微信公众号网页授权登录。详情见。

使用 QQ 网页版登录。详情见。

使用微博网页版登录。详情见。

使用钉钉网页版登录。详情见。

使用支付宝 APP 登录。详情见。

企业微信网页授权登录。详情见。

企业微信扫码登录。详情见。

注册前、注册后 Pipeline 中 data 对象部分请求字段如下:详情请见 用户鉴权 - 注册接口。

认证后 Pipeline 中 data 对象部分请求字段如下:详情请见 用户鉴权 - 登录接口。

Authing GraphQL 调试器
Authing GraphQL 调试器
配置 LDAP 服务
接入 SAML
使用 OIDC 授权
配置 LDAP服务
使用 Authing 的 LDAP 用户目录
接入 SAML
使用 OIDC 授权
接入 GitHub 登录
接入微信 PC 扫码登录
接入微信小程序登录
接入移动端 APP 微信登录
接入移动端 APP 拉起小程序登录
接入微信公众号网页授权登录
接入 QQ 登录
接入微博登录
接入钉钉登录
接入移动 APP 支付宝登录
企业微信网页授权登录
企业微信扫码登录