Я предполагаю, что ваш код Nodejs + Express представляет собой JSON API, а не обслуживает отображаемые на стороне сервера веб-страницы. Если это так, вы должны просто вернуть ошибку, если запрос сделан с просроченным / несуществующим файлом cookie сеанса. Вы можете объединить это в часть промежуточного программного обеспечения, так что вам нужно написать это только один раз, а не несколько раз. Это промежуточное программное обеспечение может возвращать ошибку, которая указывает, например, на «недопустимый сеанс».
С другой стороны, если API-интерфейс возвращает конкретную ошибку, которую вы создали для плохого / несуществующего файла cookie сеанса, вам нужно будет решить, что делать, с вашим кодом реакции. Вы можете отправить пользователя на страницу, сообщив ему, что он вышел из системы, или вы можете отправить его прямо в запрос на вход в систему, указывающий, что он должен пройти повторную аутентификацию.
Если срок действия файла cookie _session
истекает, браузер просто очистит его для вас. Поэтому все, что вам нужно беспокоиться о стороне API, - это то, что cookie либо не предоставляется, либо код на стороне сервера, каким-то образом аннулирующий сеанс.
Примеры сценариев:
- Сценарий. Сеансовый cookie-файл не передается с запросом (истек срок его действия, пользователь удалил cookie-файлы или предыдущий запрос велел браузеру удалить cookie-файл). Результат: отклоните запрос с ошибкой, используйте эту ошибку на веб-интерфейсе, чтобы перенаправить пользователя на экран входа в систему с сообщением «Сначала необходимо войти в систему».
- Сценарий: сеанс был прерван на стороне сервера, то есть токен в файле cookie сеанса не соответствует действительному сеансу в базе данных (redis, mysql и т. Д.). Результат: верните ту же ошибку, что и в приведенном выше сценарии, тот же результат произойдет, и пользователю будет предложено снова войти в систему.
Как вы можете видеть, в любом сценарии может быть целесообразно вернуть ту же ошибку, веб-интерфейс интерпретирует эту ошибку и решит, как заставить пользователя повторно пройти аутентификацию (обычно путем повторного перенаправления пользователя на экран входа в систему) .