如何签署 JWT?

Hug*_*ugo 5 ruby authentication oauth sinatra jwt

我正在尝试保护 Sinatra API。

我正在ruby-jwt用来创建 JWT,但我不知道用什么来签名。

我正在尝试使用用户的 BCrypt password_digest,但每次password_digest调用它时都会发生变化,使我去验证时签名无效。

joe*_*son 3

使用任何类型的应用程序密钥,而不是用户的 bcrypt 密码摘要。

例如,使用 dot env gem 和 .env 文件,其中的条目如下:

JWT_KEY=YOURSIGNINGKEYGOESHERE
Run Code Online (Sandbox Code Playgroud)

我个人使用简单的随机十六进制字符串生成密钥:

SecureRandom.hex(64)
Run Code Online (Sandbox Code Playgroud)

十六进制字符串仅包含 0-9 和 af,因此该字符串是 URL 安全的。