Некоторое время я пытался реализовать мобильную аутентификацию, чтобы клиенты могли использовать свои телефоны для аутентификации на моем веб-сайте .NET Core. Чтобы быть ясным, точная настройка, которую я пытаюсь достичь, такова:
- Клиенты могут зарегистрироваться на сайте или в приложении на телефоне.
- Клиенты также могут войти в систему на веб-сайте или в приложении на телефоне.
- После аутентификации пользователи телефонного приложения могут получить доступ к защищенным API-интерфейсам.
Поскольку я считаю, что все вышеперечисленное приводит к отправке на устройство «токена» (я считаю, что это JWT из моего исследования), я также хочу минимизировать количество повторных входов в систему, которые должен делать клиент. Я считаю, что это означает, что мой поток должен использовать «токены обновления», чтобы клиент мог повторно запросить действительные токены JWT в случае, если существующие токены устарели.
Я придерживался вышеизложенного довольно долгое время, и мне всегда казалось, что я слишком усложняю реализацию. Настройка вышеуказанного в тривиальном приложении .NET Core обычно означает, что я устанавливаю OpenIddict, настраиваю поток паролей, включаю токены обновления, настраиваю пользовательские контроллеры для облегчения процесса регистрации / входа в систему. А затем на стороне приложения телефона сохраните токен где-нибудь и вставьте его в будущие HTTP-запросы, если они доступны. Это происходит без интеграции вышеупомянутого с идентификатором .NET Core, поэтому прошедшие проверку пользователи могут получить доступ к своим собственным данным, таким как электронная почта и т. Д. Все примеры в Интернете, которые я видел, показывают, что OpenIddict используется для выполнения вышеуказанного, но не показывает, как затем сделать которые работают с .NET Core Identity.
Итак, как я могу создать основной веб-сайт .NET, который позволит людям аутентифицироваться на нем на мобильных клиентах? Должен ли я использовать что-то вроде OpenIddict или мне не хватает более простого пути?
authorization_code
поток OAuth. Он в основном перенаправляет пользователей вашего приложения на страницу входа, где они обменивают свои учетные данные на access_code, а затем ваше мобильное приложение обменивает их наaccess_token
+refresh_token
. Пока токен обновления действителен, пользователю не требуется повторная аутентификация. Вы можете ознакомиться с ним здесь: docs.identityserver.io / ru / latest / themes / - person jpgrassi   schedule 24.07.2019