成功验证后会发出'authenticated'
事件。
lock.on('authenticated', function(authResult) { });
但有没有办法检测新用户何时注册您的应用程序,或者我是否必须将用户存储在我的数据库中并在每次用户进行身份验证时进行检查?
答案 0 :(得分:7)
Auth0 Lock不会触发用户注册的特定事件。
但是,您可以在custom rule上检测到这一点,并使用此元数据丰富用户个人资料。有一个signup sample rule来说明这种可能性
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 Management API在服务器端应用程序逻辑上执行此操作)