аутентификация с помощью Vue Spa - PullRequest
0 голосов
/ 08 января 2019

Я следовал нескольким инструкциям по добавлению аутентификации в мое приложение vue (у которого есть сетевой интерфейс ядра API).

https://medium.com/dev-bits/a-guide-for-adding-jwt-token-based-authentication-to-your-single-page-nodejs-applications-c403f7cf04f4

и

http://jasonwatmore.com/post/2018/08/14/aspnet-core-21-jwt-authentication-tutorial-with-example-api

Я младший программист с аутентификацией, так что простите, если мои вопросы кажутся глупыми.

Это включает в себя отправку имени пользователя и пароля для моего метода входа в API и получение токена jwt (это id_token или токен доступа?). Затем я отправляю этот токен с каждым запросом API, используя авторизацию на предъявителя. В некоторых руководствах (например, в документах Microsoft Net Core) этот токен jwt содержит информацию о роли.

Это просто базовая форма аутентификации jwt. Некоторые вещи, которые я прочитал об аутентификации токена, указывают, что при входе в систему я должен получить токен идентификатора, который я затем обменяю на токен доступа API. Эти учебники, похоже, не делают этого - похоже, что есть только один токен, и что он используется для доступа и аутентификации API.

В идеале я хотел бы внедрить oidc в мое приложение vue, но многие руководства там, похоже, не решают эту проблему.

1 Ответ

0 голосов
/ 09 января 2019

В руководствах речь идет об аутентификации на основе токенов JWT, она выдаст токен JWT для объявления пользователя и его прав доступа в приложении.

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

Id_token был добавлен к спецификации OIDC ( OpenID Connect ) в качестве оптимизации, чтобы приложение могло знать личность пользователя, не делая дополнительных сетевых запросов. Он содержит информацию о профиле пользователя (например, имя пользователя, адрес электронной почты и т. Д.), И поэтому, если вы используете OpenID Connect (Implicit Flow подходит для SPA) для выполнения аутентификации и авторизации, вы получите токен id, удостоверяющий личность пользователя, и токен доступа, который можно использовать для доступа к защищенному ресурсу / API.

Вы не используете OpenID Connect, поэтому в сценарии не используется токен id.

...