Авторизация для одного устройства (game server)

178
17 декабря 2019, 20:20

Требуется сделать авторизацию для игры, таким образом, что бы для одного аккаунта можно было авторизоваться только на одном устройстве. В голову пришла только такая идея:

При авторизации клиент получает токен, также этот токен хранится в хранилище Redis. При каждом обращении к сокету клиент присылает свой токен, он сверяется с токеном в хранилище, и если токен совпадает, то генерируется новый токен, обновляется в хранилище и так же отсылается обратно клиенту вместе с полученными данными.

Например, кто-то украл токен пользователя, подставил себе, и обратился к сокету, получится так, что токен в хранилище обновится, и предыдущее устройство теряет авторизацию.

Подскажите пожалуйста, может есть какая то стандартная схема авторизации одного устройства?

Answer 1

Тема, на самом деле, очень обширная. Вариантов реализации уйма.

  1. При каждом обращении к сокету клиент присылает свой токен

    Не нужно токен присылать. По хорошему, нужно прикладывать хэш от передаваемых данных, а не сам токен. Сервак реальным токеном тоже потом получает хеш от данных, если хеши совпадают, то считаем, что токен валиден.

  2. то генерируется новый токен, обновляется в хранилище и так же отсылается обратно клиенту вместе с полученными данными.

    Токен нужно генерировать только при авторизации.

  3. Хранить нужно и в Редиске, и в основном хранилище (MySQL, Postres и т.п). После сверки хешей, если они не совпадают, обращаться в основное хранилище за реальным токеном. Обновлять токен в редисе и перепроверять хеш с новым токеном из основной базы.

READ ALSO
Изменение имени картинки

Изменение имени картинки

Есть sql запрос, который меняет название рецепта через введенное значение в texboxКартинка привязывается к имени в textbox

151
Конвейер unity3d

Конвейер unity3d

Нужно сделать конвейер на юнитиНе просто передвижение объекта, а строго по центру конвейера

175
SAP HANA Cloud cocpit

SAP HANA Cloud cocpit

Помогите разобратьсяСделал приложение, которое авторизируется на SAP HANA Cloud cockpit

150
компилятор и IDE для С++ and C#

компилятор и IDE для С++ and C#

Существует IDE который поддерживает C++ и C#При этом можно компилировать

150