В моем приложении (node js & angular в качестве API отдыха) я использую пакет jasonwebtoken
для аутентификации.
Когда пользователь входит в систему, я создаю токен доступа, который действителен в течение 30 минут и токен refre sh, у которого нет срока действия.
токен refre sh сохраняется в моей БД для каждого пользователя и удаляется в случае выхода из системы. (Процесс refre sh включает проверку токена и его соответствие в БД). У меня также есть автоматический выход из системы, который будет go через час после истечения срока действия токена доступа (так как я переименовываю только sh токен доступа, если он истек - то есть, если я звоню на сервер за 1 секунду до истечения срока действия, пользователь все равно получит выход из системы).
И refre sh, и токены доступа также сохраняются локально в браузере local storage
для таких случаев, как страница refre sh - которые вызывают автоматический вход в систему ( local storage
удаляется при выходе из системы).
Поскольку для меня это новая топи c, и поскольку я не нашел ничего конкретного о том, что делать в случае автоматического входа и автоматического выхода, у меня есть несколько вещей, которые мне не ясны:
Я нашел это JWT (JSON Web Token) автоматы c продление срока действия вопрос об установке даты истечения срока действия, но это не так Не говорите ничего об автоматическом входе / выходе из системы и о таких приложениях, как Банк, для которых это необходимо.
- Процесс обновления solid? Я прочитал много чёрных списков токенов refre sh, но я не увидел преимущества сохранения всех токенов
- Мой механизм автоматического выхода из системы выстроен так, как должен? я должен сделать модификации для этого? Можно ли разрешить автоматический выход из системы через час после истечения срока действия маркера доступа?
- Если пользователь закроет браузер, автоматический выход из системы не будет работать и токен refre sh будет действителен до пользователь снова войдет в систему - что я могу сделать, чтобы это заработало? Если я буду работать с
session storage
, токен все равно не будет удален из БД. - В случае, если у меня есть вызов на сервер, который потребовал некоторую информацию о пользователе (например, его идентификатор БД), я все еще ожидаю получить его в теле запроса / параметрах запроса - это нормально или я должен использовать полезную нагрузку из маркера доступа?
спасибо