Как реализовать логин пользователя через OAuth2.0 в JS приложении для доступа к REST API?

Есть свой REST API, доступ к определенным endpoint'ам должен предоставляться через OAuth2 (свой OAuth2 сервер).

К этому API необходимо прикрутить свой клиент на JS, в котором пользователя непосредственно смогут логинится под login/password, получать OAuth2 токен взамен и уже доступ будет к API через клиент на JS будет определяться только что полученным OAuth2 токеном.

Интуитивно я понимаю, что нужно зарегистрировать клиент для JS приложения (client_id, client_secret) и до логина пользователя оперировать им, потому получать новый токен пользователя и использовать его.

Но я не понимаю, какие client_id и client_secret надо использовать при логине нового пользователя, когда JS приложение зарегистрировано на администратора.

В конечном итоге вопрос заключается в том - как реализовать логин пользователя, для которого автоматически в БД создается клиент?
  • Вопрос задан
  • 5292 просмотра
Пригласить эксперта
Ответы на вопрос 2
Serhioromano
@Serhioromano
Web Developer
По мне так ни какого клиента не надо. Я не знаком с OAuth2 но предполагаю что пользователь при каждом входе получает разный токен и он гдето сохраняется. То есть система такая.

Пользователь логинится.
Сервер проверяет имя и пароль и если они валидны, генерит ключ или токен как угодно
Клиент получает данные пользователя. Типа объект с айди, именем, ключем и всем остальным и сохраняем в какмом-нибудь storage.
Теперь, при любом запросе к API мы передаем айди пользователя и токен.
На сервере проверям, этот ли токен у этого пользователя, и если да то проверяем есть ли у него права получить данные этого запроса.

В этой схеме, естественно каки-то запросы к API на сервер, проходят даже если нет токена и идентификатора пользователя. Например запрос на авторизацию, или на получение публичной информации которую видят все.
Ответ написан
@evvcom
Для WEB-приложения с javascript все довольно подробно расписано у Гугля: https://developers.google.com/+/web/signin/server-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект
24 нояб. 2024, в 00:04
5000 руб./за проект