Токен JWT пропустил заявку в модуле Nuxt Auth с Auth0 - PullRequest
0 голосов
/ 16 апреля 2020

В моем приложении Nuxt после успешного входа в систему у меня есть претензия от Auth0. Консоль Devtools показывает это:

$vm0.$auth.$state.user['https://hasura.io/jwt/claims']
{x-hasura-default-role: "user", x-hasura-allowed-roles: Array(1), x-hasura-user-id: "auth0|5e989a*******"}

Но у моего токена нет этого утверждения, поэтому мои запросы на хасуру не выполняются. Я проверяю токен сразу после утверждения в консоли:

$vm0.$auth.getToken('auth0')
"Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1ESTNNa0l5...

И я декодирую его, используя https://jwt.io/, а претензий нет:

{
"iss": "https://*******.eu.auth0.com/",
  "sub": "auth0|5e989a*******",
  "aud": [
    "https://*******.eu.auth0.com/api/v2/",
    "https://*******.eu.auth0.com/userinfo"
  ],
  "iat": 1587059738,
  "exp": 1587066938,
  "azp": "MxJB0Y9dxvdGZnTAb2a4Y0YOHArvbkWt",
  "scope": "openid profile email"
}

Вот мой Сценарий заявки на панели инструментов Auth0:

function (user, context, callback) {
const namespace = "https://hasura.io/jwt/claims";
  context.idToken[namespace] = 
    { 
      'x-hasura-default-role': 'user',
      // do some custom logic to decide allowed roles
      'x-hasura-allowed-roles': ['user'],
      'x-hasura-user-id': user.user_id
    };
  callback(null, user, context);
}

1 Ответ

0 голосов
/ 17 апреля 2020

Я исправил эту проблему, изменив скрипт заявки на панели инструментов Auth0. Это должно быть context.accessToken[namespace] = {...} вместо context.idToken[namespace] = {...}, и теперь у меня есть данные заявки в моем токене.

...