Доступ к app_metadata из Auth0 Lock

Я пытаюсь получить доступ к app_metadata от Auth0, и я использую клиент блокировки. Я нашел пользовательские утверждения и создал правило, которое они показывают, но теперь я понятия не имею, как на самом деле использовать эти данные. Вот функция, которая обрабатывает все мои аутентификации:

setSession(authResult) {
    if (authResult && authResult.accessToken && authResult.idToken) {
        this.lock.getUserInfo(authResult.accessToken, function(err, profile) {
            if (err) {
                return;
            }

            localStorage.setItem("access_token", authResult.accessToken);
            localStorage.setItem("id_token", authResult.idToken);
            localStorage.setItem("expires_at", JSON.stringify((authResult.expiresIn * 1000) + new Date().getTime()));
            localStorage.setItem("profile", JSON.stringify(profile));

            history.replace("/home");
        });
    }
}

Я ожидаю, что смогу получить app_metadata из профиля после включения этого, но это не так. Я делаю что-то не так или я что-то забываю?

РЕДАКТИРОВАТЬ 1: Вот правило, которое я имею в настоящее время.

function (user, context, callback) {
   const namespace = "https://alexkrantz.com";
   context.accessToken[namespace + "user_metadata"] = user.user_metadata;
   context.accessToken[namespace + "app_metadata"] = user.app_metadata;
   callback(null, user, context);
}

1 ответ

вы можете сделать запрос и получить все пользовательские данные из API управления, и там вы найдете user_metadata и app_metadata, таким образом

      const res = await fetch(`${process.env.AUTH0_ISSUER}/api/v2/users/${user.id}`,{
          method:'GET',
          headers: {authorization: 'Bearer management_api_token'},
        })

здесь вы найдете дополнительную информацию в документации https://auth0.com/docs/manage-users/user-accounts/manage-users-using-the-management-api https://auth0.com/docs/api/management/v2#!/Пользователи/get_users_by_id

Другие вопросы по тегам