Если токен валидный, нужна ли проверка на существование в БД юзера?
Нужно ли делать проверку на существование пользователя в БД при проверке токена JWT?
Или валидный токен сам по себе служит доказательством существования пользователя?
Пример, в payload я храню id юзера.
Нужно ли делать проверку на существование пользователя с указанным id в БД?
Как я понимаю, это лишний кейс?
Придумал только случай, когда украли SECRET_KEY и и создали свой JWT с несуществующим id, только зачем?
если проверять, то в чем смысл использования токена? проще тогда просто идентификатор сессии, по которому уже подтягивать всю инфу, как по юзеру, так и по сессии
FanatPHP, c refresh так и делаю, кладу в payload id сессии.
А если это будет access token (для него отдельной сессии не создается)? - его особой необходимости нет хранить в БД.
lexstile, Вы сами записываете этот ID в токен. Если токен валиден, то это значит, что данные в нем (ID) именно те, которые вы записали, и косвенно это доказывает существование пользователя. Ведь вы записали туда существующего пользователя. Однако, пользователь, например, может быть удален из базы.
ну вот и надо определиться - есть необходимость или нету необходимости
обычно в любой системе авторизации предусмотрено изменение уровня доступа, в просторечии - "бан".
если такой функционал не предусмотрен, то можно использовать и стильный модный молодёжный токен JWT
если же такой функуционал требуется, то смысла в использовании токенов примерно ноль.
потому что тогда все равно надо прочитать сессию при каждом обращении, а если читаем сессию, то хранить инфу в токене становится бессмысленно
FanatPHP, в моем случае разделения прав не будет - есть зарегистрированный пользователь и гость, на этом все.
Вот и пытаюсь понять, нужна ли проверка на существование пользователя в БД.
То, что юзер заблокирован и у него нет полномочий - это другой кейс.
Сергей delphinpro, в общем, проверять и не париться, понял, благодарю.
В моем случае пользователь может быть удален только в случае сбоя программы, взлома и т. п.
Сергей delphinpro, так админ существует в БД, по сути, проверка на существование и не нужна в этом кейсе.
Она только подтвердит, что пользователь существует в БД.