The 'authenticated'
身份验证成功后会发出事件。
lock.on('authenticated', function(authResult) { });
但是有什么方法可以检测新用户何时注册您的应用程序,或者我是否必须将用户存储在数据库中并在每次用户进行身份验证时进行检查?
Auth0 锁不会触发用户注册的特定事件。
但是,您可以在自定义规则 https://auth0.com/docs/rules并使用此元数据丰富用户配置文件。有一个注册示例规则 https://github.com/auth0/rules/blob/master/rules/signup.md这说明了这种可能性
function (user, context, callback) {
user.app_metadata = user.app_metadata || {};
// short-circuit if the user signed up already
if (user.app_metadata.signed_up) return callback(null, user, context);
// execute first time login/signup logic here
// ...
// update application metadata so that signup logic is skipped on subsequent logins
user.app_metadata.signed_up = true;
auth0.users.updateAppMetadata(user.user_id, user.app_metadata)
.then(function () {
callback(null, user, context);
})
.catch(function (err) {
callback(err);
});
}
这使用app_metadata
存储与用户关联的信息,以便您可以跟踪已执行额外首次注册逻辑的用户。
请记住,规则将在身份验证管道的服务器端执行,因此如果您要实现的逻辑需要用户交互,您可以通过执行以下一组步骤来实现类似的效果:
- 登录应用程序后获取用户个人资料
- 如果没有设置标志,则假设用户刚刚注册并执行您的自定义逻辑
- 完成自定义逻辑后更新用户
app_metadata
设置注册标志(您可以通过以下方式在服务器端应用程序逻辑上执行此操作Auth0管理API https://auth0.com/docs/metadata/management-api)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)