Как обработать токен доступа в OAuth-авторизации? - PullRequest
0 голосов
/ 23 октября 2019

Я создаю приложение, которое использует Github OAuth , которое использует поток авторизации. Я впервые использую OAuth, поэтому хочу убедиться, что все делаю правильно. Я представляю что-то вроде:

Пользователь нажимает Continue with Github. Мы вызываем GH url и предоставляем URI перенаправления внешнего интерфейса. Приложение принимает code и отправляет его на сервер. Он обменивает его на токен доступа, затем получает пользователя от API, получает идентификатор и проверяет, существует ли он в базе данных. Если это так, он создает токен JWT и отправляет ответ типа [token, ...].

Я надеюсь, что так и должно быть.

Вопрос в том, что делатьесли пользователь не существует. В этом случае я также хочу попросить пользователя ввести имя пользователя в моем приложении (а также принять ToS и т. Д.). Поэтому у меня есть два варианта: отправить обратно код или отправить токен доступа.

Если я отправлю код, как только пользователь введет имя пользователя, сервер снова будет запрашивать токен доступа. Мне кажется это повторением.

Но так как токен доступа является функцией секрета моего приложения, я сомневаюсь, чтобы он был на клиенте. Хотя это убеждает меня в обратном:

  • токен доступа должен быть подписью секрета приложения и не должен пропускать секрет приложения (верно?)
  • мы можем предположить, что приложение store безопасен, потому что, ну, это состояние приложения
  • соединение SSL

Так что же лучше? Ура!

1 Ответ

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

Не уверен насчет специфики GitHub, но общее поведение саморегистрации заключается в том, что GitHub поможет вам. После входа ваше приложение получит токен с новым идентификатором пользователя. Затем вам нужно будет создать этого пользователя в бэк-энде вашего приложения. Моя запись может помочь - это сложно, хотя: https://authguidance.com/2017/10/02/user-data/

...