Как правильно выполнять аутентификацию SPA с помощью ASP.NET Core 3? - PullRequest
0 голосов
/ 10 октября 2019

Новый ASP.NET Core 3 Angular шаблон проекта с аутентификацией использует Identity Server и OIDC для аутентификации. До сих пор я всегда использовал простую JWT-аутентификацию для моего Angular SPA.

Теперь мой вопрос: каков правильный подход для реализации аутентификации , если вы хотите использовать страницу входа в приложение Angular ?

Итак, у меня уже есть реализованный логинстраница в моем приложении Angular, которое я хочу использовать. Насколько я знаю, рабочий процесс OIDC с Identity Server всегда использует страницу входа, созданную на сервере. В моем случае, должен ли я продолжать использовать простую JWT-аутентификацию или возможно ли использовать мою страницу входа в Angular с Identity Server?

Я почти уверен, что проблема заключается в моем непонимании OIDC,но я уже прочитал книгу и несколько статей об этом и до сих пор не совсем понял.

Я был бы очень рад получить объяснительный ответ!

Ответы [ 2 ]

1 голос
/ 11 октября 2019

И OIDC, и JWT являются конкретными промышленными стандартами для аутентификации без сохранения состояния .

Аутентификация без сохранения состояния сохраняет данные сеанса пользователя на стороне клиента .

OAuth - это более прямая интеграция со сторонним приложением (например, google или github), но я думаю, что JWT проще в реализации и манипулировании.

Но вы не обязаны использовать Identity или Identity Server, выМожно также реализовать ваши личные таблицы для аутентификации, но для ответа на ваши вопросы, да, вы можете использовать IdentityServer с JWT: http://docs.identityserver.io/en/latest/topics/apis.html

Я использую Angular 8 и net.Core 3 Web Api с JWT и Microsoft Identity иРолевые столы

0 голосов
/ 10 октября 2019

Если вы делаете настоящий SPA, то вам вообще не нужен asp.net. Используйте клиентскую библиотеку oidc для управления безопасностью. Если да, то у меня есть учебник и пример кода, который может помочь: https://authguidance.com/2017/09/24/basicspa-overview/

Или вы работаете с серверным веб-приложением? Может зависеть от того, как вы планируете разместить веб-контент ..

...