Я просто попробовать JWT маркеры на рельсы приложение, с помощью этой библиотеки JWT: https://github.com/jwt/ruby-jwt
JWT.encode({sss: "333"}, 'SECRET_KEY')
возвращает ниже маркер:
eyJhbGciOiJIUzI1NiJ9.eyJzc3MiOiIzMzMifQ.CwX_1FztYHVpyx_G27u938SceilsVc5AB5Akwqlo2HA
Затем я расшифровал, используя вышеуказанный токен
JWT.decode("eyJhbGciOiJIUzI1NiJ9.eyJzc3MiOiIzMzMifQ.CwX_1FztYHVpyx_G27u938SceilsVc5AB5Akwqlo2HA", 'SECRET_KEY')
, верный ответ ниже правильно:
[{"sss" => "333"}, {"alg" => "HS256"}]
Но если я попытаюсь изменить последнюю букву токена на B вместо текущей A он по-прежнему возвращает тот же самый ответ, что странно.
JWT.decode("eyJhbGciOiJIUzI1NiJ9.eyJzc3MiOiIzMzMifQ.CwX_1FztYHVpyx_G27u938SceilsVc5AB5Akwqlo2HB", 'SECRET_KEY')
Получение этого ответа, даже если предоставленный мной токен неверен:
[{"sss" => "333 "}, {" alg "=>" HS256 "}]
На самом деле я получаю одинаковый ответ для всех символов до 'D'
Если я использую F
и другие выше, чем это показывает ошибка, как и ожидалось:
JWT.decode("eyJhbGciOiJIUzI1NiJ9.eyJzc3MiOiIzMzMifQ.CwX_1FztYHVpyx_G27u938SceilsVc5AB5Akwqlo2HF", 'SECRET_KEY')
JWT :: VerificationError (проверка подписи поднята) от (irb): 34
Что можетбыть причиной этого? Это ожидаемое поведение или я здесь что-то не так делаю?