Требуется сделать авторизацию для игры, таким образом, что бы для одного аккаунта можно было авторизоваться только на одном устройстве. В голову пришла только такая идея:
При авторизации клиент получает токен, также этот токен хранится в хранилище Redis. При каждом обращении к сокету клиент присылает свой токен, он сверяется с токеном в хранилище, и если токен совпадает, то генерируется новый токен, обновляется в хранилище и так же отсылается обратно клиенту вместе с полученными данными.
Например, кто-то украл токен пользователя, подставил себе, и обратился к сокету, получится так, что токен в хранилище обновится, и предыдущее устройство теряет авторизацию.
Подскажите пожалуйста, может есть какая то стандартная схема авторизации одного устройства?
Тема, на самом деле, очень обширная. Вариантов реализации уйма.
При каждом обращении к сокету клиент присылает свой токен
Не нужно токен присылать. По хорошему, нужно прикладывать хэш от передаваемых данных, а не сам токен. Сервак реальным токеном тоже потом получает хеш от данных, если хеши совпадают, то считаем, что токен валиден.
то генерируется новый токен, обновляется в хранилище и так же отсылается обратно клиенту вместе с полученными данными.
Токен нужно генерировать только при авторизации.
Хранить нужно и в Редиске, и в основном хранилище (MySQL, Postres и т.п). После сверки хешей, если они не совпадают, обращаться в основное хранилище за реальным токеном. Обновлять токен в редисе и перепроверять хеш с новым токеном из основной базы.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть sql запрос, который меняет название рецепта через введенное значение в texboxКартинка привязывается к имени в textbox
Нужно сделать конвейер на юнитиНе просто передвижение объекта, а строго по центру конвейера
Помогите разобратьсяСделал приложение, которое авторизируется на SAP HANA Cloud cockpit
Существует IDE который поддерживает C++ и C#При этом можно компилировать