¶ 如何识别用户来源
更新时间: 2022-03-01 17:48:57
如果你使用托管登录页或者嵌入登录组件, 支持自动识别请求参数将用户来源写入到用户的自定义字段;同时 提供的 SDK 也可以在登录注册时将注册来源信息写入到用户的自定义字段,从而达到识别用户来源的目的。
¶ 使用托管登录页面
Authing 托管登录页模式被认为是最简单,最安全的集成方式。这是因为登录流程由 Authing 维护,并由 Authing 保持安全。对于大多数集成,建议使用 Authing 托管的登录流程。你的业务系统将用户重定向到 Authing,在此用户进行身份验证,然后重定向回在控制台配置的应用回调连接。
在托管登录页面中识别用户来源,可以分为以下几步。
- 在 Authing 控制台定义一个用户自定义字段(如
source
),用于存储用户的来源数据,详情请见添加自定义用户字段; - 访问应用域名的时候带上指定的
query
参数,如https://your-app.authing.cn?source=someWhere
; - 当用户登录注册的时候, 将会将此数据写入到用户的自定义字段中;
- 之后你可以使用 Authing 提供的 SDK 管理用户的自定义字段,详情请见 SDK - 管理自定义数据。
¶ 使用嵌入登录组件
Authing 登录组件(Guard)是一种可嵌入的登录表单,可根据你的需求进行配置,建议用于单页面应用程序。Guard 可以集成到你的 React、Vue.js、Angular 以及原生 JavaScript 项目中,你可以借助此组件快速实现登录认证流程。
在嵌入登录组件中识别用户来源,可以分为以下几步。
- 在 Authing 控制台定义一个用户自定义字段(如
source
),用于存储用户的来源数据,详情请见添加自定义用户字段; - 在 Guard 组件所在页面的 URL 上添加同样的 Query 参数,如
?source=someWhere
。当用户使用 Guard 组件注册时,将会将这个参数写入到用户的自定义字段中; - 之后你可以使用 Authing 提供的 SDK 管理用户的自定义字段,详情请见 SDK - 管理自定义数据。
¶ 使用 SDK
- 在 Authing 控制台定义一个用户自定义字段(如
source
),用于存储用户的来源数据,详情请见添加自定义用户字段; - 在调用登录函数的时候传递自定义数据,如:
- 使用邮箱密码注册:
const { AuthenticationClient } = require('authing-js-sdk')
const authing = new AuthenticationClient({
appId: 'YOUR_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: 'YOUR_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: 'YOUR_APP_ID',
appHost: 'YOUR_APP_HOST',
});
authing.wxqrcode.startScanning('domId', {
onSuccess: (userinfo) => {
console.log(userinfo)
},
customData: {
source: 'someWhere'
}
})
- 用户完成登录注册之后, 将会将此数据写入到用户的自定义字段中;
- 之后你可以使用 Authing 提供的 SDK 管理用户的自定义字段,详情请见 SDK - 管理自定义数据。
本文是否有解决您的问题?
如果遇到其他问题,你可以在 authing-chat/community 联系我们。