Лучшие практики для управления сеансом пользователя, вошедшим в систему с помощью OAuth 2.0 + OIDC - PullRequest
0 голосов
/ 21 апреля 2020

Моя браузерная игра позволяет пользователям играть только в том случае, если они аутентифицируются с использованием OAuth 2.0 + OID C определенным c провайдером, использующим Код авторизации тип предоставления. Предположим, провайдер - Google. Моей браузерной игре просто нужны две информации: пользовательский Google ID и пользовательский Google email . Чтобы получить эту информацию, мое приложение запрашивает у сервера аутентификации Google и токен доступа (OAuth 2.0), и токен ID (OID C). Поскольку моя игра поддерживается базой данных, когда она получает данные, полученные от Google, она создает нового пользователя в базе данных, сохраняя как идентификатор, так и адрес электронной почты. Конечно, в будущем, если у пользователя уже есть запись в базе данных, приложение не будет создавать никаких новых записей, но, возможно, просто проверяет, изменилось ли электронное письмо (это может произойти), а затем обновляет его также внутри базы данных. (поскольку полученный Google ID пользователя является первичным ключом таблицы пользователя). Хорошо, достаточно справедливо (я надеюсь).

Теперь начинается первая борьба: как мне управлять следующими полученными данными? На практике в конце процесса я получил следующие разумные данные :

  • Код авторизации ( Нужно ли хранить это где-нибудь? Это важно? )
  • Google ID пользователя (хранится в базе данных приложения)
  • Google Email пользователя (хранится в базе данных приложения)
  • ID токен ( используется для получения вышеуказанных утверждений, тогда я думаю, что хранить его вообще бесполезно, верно? )
  • токен доступа ( Должен ли я хранить это? Если да, то как Я думаю, где лучшее место? )

Моя вторая борьба: Как мне управлять сеансом вошедшего в систему пользователя? На практике, как мне это сделать? оставить вошедшего в систему пользователя до истечения срока действия токена доступа? Кроме того, поскольку у меня нет питания на маркере доступа, как в этом случае работает выход из системы? (может быть, мне нужно вызвать конечную точку / revoke ?)

Пожалуйста, исправьте меня, если я что-то не так сказал, я новичок в OAuth 2.0 и OID C, поэтому я ищу лучшие практики для использования в описанном сценарии. Спасибо за ваше время.

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