Перенос аутентификации OAuth из мобильного приложения в веб-просмотр - PullRequest
0 голосов
/ 30 октября 2019

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

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

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

Как бы мы перенесли аутентификацию из приложения в API, когда аутентификация была выполнена в приложении? Я думаю, что установка cookie, содержащего токен в домене API, будет лучшим способом реализации этого?

Извинения, если вопрос не так ясен, как мог бы быть. Я борюсь с тем, как лучше всего сформулировать и объяснить мой вопрос.

1 Ответ

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

Хороший вопрос - я реализовал это в прошлом с помощью шаблона стратегии:

  • Когда веб-просмотр размещается в браузере (который в моем случае был SPA), обрабатывать токены встандартным способом SPA - например, продление токена при переадресации входа в систему iframe / полноэкранного режима

  • Когда веб-просмотр размещен в мобильном приложении, определите это через агента пользователя и перезвоните мобильному приложению, чтобыделать такие вещи, как обновить токен или инициировать новый мобильный логин

Это сложно, но имеет смысл, так как в сети / мобильном устройстве существуют очень разные решения для обновления токена / хранения / входа в систему

Это пример практического использования в реальных условиях, когда вы находите практически нулевое руководство в Интернете. Рад ответить на любые последующие вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...