Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
使用指南
  • 快速开始

  • 对用户进行认证

  • 对用户进行权限管理

  • 用户自助服务

  • 授权

  • 自适应 MFA

  • 管理用户账号

  • 管理用户目录

  • 同步中心

  • 应用

  • 成为联邦认证身份源

  • 连接外部身份源(IdP)

  • 微信生态全场景能力

  • 迁移用户到 Authing

  • 管理组织机构

  • 安全设置

  • 品牌化

  • 自动化

  • 审计日志

  • 设置

  • Authing 令牌
  • 私有化部署方案

  • 常见问题 FAQ

    • 如何获取用户池 ID
    • 如何获取应用 ID
    • 如何验证用户身份凭证(token)
    • 使用统一域名的用户池
    • 如何识别用户来源
    • 在本地联表 Authing 用户与你的业务数据
    • 禁用第三方 Cookie 对 Authing 的影响
    • 如何部署中转代理服务器
    • 如何获取 Authing 服务器集群 IP
    • 同步中心常见问题
    • Pipeline 常见问题
    • 企业微信扫码登录常见问题
  1. 使用指南
  2. /
  3. 常见问题 FAQ

  4. /
  5. 如何识别用户来源

¶ 如何识别用户来源

更新时间: 2025-02-18 09:00:47
编辑

如果你使用 托管登录页 或者 嵌入登录组件,Authing 支持自动识别请求参数将用户来源写入到用户的自定义字段。同时,Authing 提供的 SDK 也可以在登录注册时将注册来源信息写入到用户的自定义字段,从而达到识别用户来源的目的。

¶ 使用托管登录页面

Authing 托管登录页 模式被认为是最简单,最安全的集成方式。这是因为登录流程由 Authing 维护,并由 Authing 保持安全。对于大多数集成,建议使用 Authing 托管的登录流程。你的业务系统将用户重定向到 Authing,在此用户进行身份验证,然后重定向回在控制台配置的应用回调连接。

在托管登录页面中识别用户来源,可以分为以下几步。

  1. 在 Authing 控制台定义一个用户自定义字段(如 source),用于存储用户的来源数据,详情请见 添加自定义用户字段。
  2. 访问应用域名的时候带上指定的 query 参数,如 https://your-app.authing.cn?source=someWhere。
  3. 当用户登录注册的时候,Authing 将会将此数据写入到用户的自定义字段中。
  4. 之后你可以使用 Authing 提供的 SDK 管理用户的自定义字段,详情请见 SDK - 管理自定义数据。

¶ 使用嵌入登录组件

Authing 登录组件(Guard) 是一种可嵌入的登录表单,可根据你的需求进行配置,建议用于单页面应用程序。Guard 可以集成到你的 React、Vue.js、Angular 以及原生 JavaScript 项目中,你可以借助此组件快速实现登录认证流程。

在嵌入登录组件中识别用户来源,可以分为以下几步:

  1. 在 Authing 控制台定义一个用户自定义字段(如 source),用于存储用户的来源数据,详情请见 添加自定义用户字段。
  2. 在 Guard 组件所在页面的 URL 上添加同样的 Query 参数,如 ?source=someWhere。当用户使用 Guard 组件注册时,将会将这个参数写入到用户的自定义字段中。
  3. 之后你可以使用 Authing 提供的 SDK 管理用户的自定义字段,详情请见 SDK - 管理自定义数据。

¶ 使用 SDK

  1. 在 Authing 控制台定义一个用户自定义字段(如 source),用于存储用户的来源数据,详情请见 添加自定义用户字段。
  2. 在调用登录函数的时候传递自定义数据,如:
  • 使用邮箱密码注册:
const { AuthenticationClient } = require('authing-js-sdk')

const authing = new AuthenticationClient({
  appId: 'AUTHING_APP_ID',
  appHost: 'YOUR_APP_HOST',
});
const email = 'test@example.com'
const password = 'passw0rd'
const user = await authing.registerByEmail(email, password, null, {
  customData: {
    source: 'google'
  }
});
  • 使用社会化登录:
const { AuthenticationClient } = require('authing-js-sdk')

const authing = new AuthenticationClient({
  appId: 'AUTHING_APP_ID',
  appHost: 'YOUR_APP_HOST',
});
authing.social.authorize('google', {
  onSuccess: (userinfo) => {
    console.log(userinfo)
  },
  customData: {
    source: 'someWhere'
  }
})
  • 使用小程序扫码登录:
const { AuthenticationClient } = require('authing-js-sdk')

const authing = new AuthenticationClient({
  appId: 'AUTHING_APP_ID',
  appHost: 'YOUR_APP_HOST',
});
authing.wxqrcode.startScanning('domId', {
  onSuccess: (userinfo) => {
    console.log(userinfo)
  },
  customData: {
    source: 'someWhere'
  }
})
  1. 用户完成登录注册之后,Authing 将会将此数据写入到用户的自定义字段中。
  2. 之后你可以使用 Authing 提供的 SDK 管理用户的自定义字段,详情请见 SDK - 管理自定义数据。
上一篇: 使用统一域名的用户池 下一篇: 在本地联表 Authing 用户与你的业务数据
  • 使用托管登录页面
  • 使用嵌入登录组件
  • 使用 SDK

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司