Состояние состязания для постоянных файлов cookie «Запомнить меня»

Согласно Передовой практике постоянных файлов cookie для входа , вы никогда не должны позволять использовать токен «запомнить меня» более одного раза:

Постоянный файл cookie подходит для единый вход. После подтверждения аутентификации случайный номер, используемый для входа в систему, становится недействительным и назначается новый файл cookie. Стандартное управление сеансом обрабатывает учетные данные на протяжении всего сеанса, поэтому вновь назначенный файл cookie не будет проверяться до следующего сеанса (в этот момент он также станет недействительным после использования).

Затем, как вы справляетесь с состоянием гонки, когда пользователь одновременно посещает несколько URL-адресов на вашем сайте? На самом деле у меня сейчас проблема.

Допустим, из браузера на сервер отправляются два запроса в то же время. Запросы не содержат файлов cookie сеанса, но содержат тот же файл cookie «запомнить меня». Один из запросов будет обработан раньше другого и получит ответ с аутентифицированным файлом cookie сеанса и восстановленным файлом cookie «запомнить меня».

Параметр «запомнить меня» токен во втором запросе теперь недействителен , и на сервере создается другой идентификатор сеанса. Этот запрос не выполняется, поскольку пользователь не может быть аутентифицирован.

Я придумал несколько возможных решений, но ни одно из них не кажется очень хорошим. Я что-то упускаю?

6
задан Christian Davén 10 May 2011 в 10:53
поделиться