#oauth-2.0
#oauth-2.0
Вопрос:
Если мне нужно заставить пользователя зарегистрироваться на моем веб-сайте, я могу использовать oauth2.0 для получения адреса электронной почты и т.д., И я могу получить токен доступа для дальнейших обращений к серверу ресурсов. Мой вопрос заключается в том, что, как только я получу, например, адрес электронной почты и имя пользователя с сервера ресурсов, как мне зарегистрировать пользователя на моем веб-сайте? и когда пользователь совершает последующие вызовы на мой веб-сайт, как мне распознать, что это тот же пользователь?
Ответ №1:
Электронная почта и имя на сервере авторизации могут быть изменены пользователем, но идентификатор пользователя — нет. Вы можете получить идентификатор пользователя, получив sub
поле с сервера авторизации для создания записи пользователя в вашей базе данных. Например, сохранение в базе данных, как:
sub: string <-- user id on google
provider: google <--- the provider (Authorization Server)
-> каждый раз, когда пользователь входит в систему с помощью Google, вы можете проверить, существует ли пользователь в вашей базе данных, проверив (sub, поставщик)
Где вы можете получить sub
?
- использование токена доступа для получения конечной точки userinfo OpenID connect ИЛИ
- например, проверка и извлечение id_token:https://developers.google.com/identity/protocols/oauth2/openid-connect#obtainuserinfo
Комментарии:
1. хорошо, спасибо, но как насчет создания сеанса пользователя на моем веб-сайте для последующих запросов. как только у меня будет идентификатор пользователя и я внесу его в свою базу данных, какова общая или наилучшая практика для создания сеанса пользователя на моем веб-сайте.