Auth0: как использовать профиль пользователя в правиле? - PullRequest
1 голос
/ 18 марта 2020

Я хочу добавить last_ip и last_login в качестве утверждений в токене доступа, используя правило:

function (user, context, callback) {
  const namespace = 'https://myapp.example.com/';
  context.accessToken[namespace + 'last_ip'] = user.last_ip;
  context.accessToken[namespace + 'last_login'] = user.last_login;
  callback(null, user, context);
}

Эти два свойства не существуют для пользователя внутри правила: https://auth0.com/docs/rules/references/user-object

Ни для объекта контекста: https://auth0.com/docs/rules/references/context-object

Но они существуют в профиле пользователя: https://auth0.com/docs/users/references/user-profile-structure

Q: Как я могу использовать любое поле профиля пользователя, которое я хочу внутри правила?

1 Ответ

0 голосов
/ 18 марта 2020

Я нашел рабочее решение:

function (user, context, callback) {
  const namespace = 'https://myapp.example.com/';  

  var ManagementClient = require('auth0@2.19.0').ManagementClient;
  var management = new ManagementClient({
    token: auth0.accessToken,
    domain: auth0.domain
  });  

  management.getUser(user.user_id)
    .then(function(users){
      context.accessToken[namespace + 'last_ip'] = users[0].last_ip;
      context.accessToken[namespace + 'last_login'] = users[0].last_login;

      callback(null, user, context);
    })
    .catch(function(err){
      callback(err);
    });
}
...