Зачем вызывать getUserInfo, если я могу получить то же самое из id_token?

Согласно документации ( https://auth0.com/docs/tokens/id-token) можно запросить id_token, содержащий профиль пользователя, e- почта...

Так зачем мне звонить getUserInfo как показано в примере https://auth0.com/docs/libraries/lock/v11?

1 ответ

Я не уверен, каков ваш сценарий, но представьте себе одностраничное приложение (SPA) в сочетании с бэкэнд-API.

TL; DR

бэкэнд API должен использовать access_token + /userinfo, id_token удобство для внешнего интерфейса.

Еще несколько деталей:

Предположим, вы делаете аутентификацию прямо в SPA. Это дает и access_token и id_token,

id_token может использоваться SPA для отображения дополнительной информации (псевдоним, электронная почта,...).

Что теперь, если SPA хочет сделать вызов защищенной конечной точки в бэкэнд-API?

Возможность здесь будет состоять в том, что он проходит access_token в заголовке авторизации (например, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c см. jwt.io)

Так что бэкэнд должен:

  • проверить access_token,

Например, используя набор веб-ключей JSON (https://YOUR_AUTH0_DOMAIN/.well-known)

Вы также можете передать id_token (в пользовательском заголовке или в качестве полезной нагрузки), но серверная часть не должна доверять этой информации (конечный пользователь мог подделать ее, например, изменив id_token и утверждая, что она является пользователем superadmin, а не обычным пользователем).

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