Токен обновления веб-сокета

В настоящее время я разрабатываю многопользовательскую карточную игру с Unity. Многопользовательская архитектура будет использовать websocket (NodeJS Socket.IO), а в целях безопасности я использую JWT с токеном обновления после истечения срока действия токена доступа.

Каждый раз, когда я отправляю запрос в websocket, я отправляю запрос вместе с токеном доступа. По праву, когда токен доступа истек, я должен отозвать новый токен доступа с токеном обновления. Меня беспокоит обработка токена обновления. Должен ли я отправить запрос клиенту на получение токена обновления и повторно отправить токен обновления обратно в веб-сокет, чтобы обновить токен доступа? Чтобы обновить токен доступа, я проверю токен обновления через базу данных, чтобы убедиться, что токен действителен. Мне интересно, что весь процесс уместен и вызывает какие-либо задержки (задержки), поскольку это многопользовательская игра в реальном времени.

Кто-нибудь здесь может дать совет?


person user5509129    schedule 16.08.2017    source источник


Ответы (1)


Если вы видите традиционный HTTP API, который аутентифицируется на основе токена доступа / обновления, приложение самостоятельно отслеживает время истечения срока действия токена (это означает, что JWT должен иметь временную метку exp). Если приложение обнаруживает, что срок действия токена доступа истекает, оно загружается как новый с сервера, обменивающегося токеном обновления.

Здесь действует тот же поток

  1. Проверьте отметку времени истечения срока с текущей отметкой времени (за вычетом некоторого времени буфера).
  2. Если срок действия токена доступа скоро истечет, получите новый с сервера и продолжите предыдущий вызов.
person abskmj    schedule 30.08.2017