Auth0 Lock中的用户注册事件

时间:2016-10-25 21:47:26

标签: javascript authentication auth0

成功验证后会发出'authenticated'事件。

lock.on('authenticated', function(authResult) { });

但有没有办法检测新用户何时注册您的应用程序,或者我是否必须将用户存储在我的数据库中并在每次用户进行身份验证时进行检查?

1 个答案:

答案 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来存储与用户关联的信息,以便您可以跟踪已经执行了其他首次注册逻辑的用户。

请记住,规则将在身份验证管道的服务器端执行,因此,如果要实现的逻辑需要用户交互,则可以通过执行以下步骤来实现类似的操作:

  1. 登录应用程序后,获取用户个人资料
  2. 如果没有设置标志,则假定用户刚刚注册并执行自定义逻辑
  3. 执行自定义逻辑更新后,用户app_metadata设置注册标记(您可以通过Auth0 Management API在服务器端应用程序逻辑上执行此操作)