This will look at environment variables and Rails Credentials, and Rails Secrets. See documentation here: https://api.rubyonrails.org/v7.0.5/classes/Rails/Application.html#method-i-secret_key_base
22 lines
363 B
Ruby
22 lines
363 B
Ruby
class Widget::TokenService
|
|
pattr_initialize [:payload, :token]
|
|
|
|
def generate_token
|
|
JWT.encode payload, secret_key, 'HS256'
|
|
end
|
|
|
|
def decode_token
|
|
JWT.decode(
|
|
token, secret_key, true, algorithm: 'HS256'
|
|
).first.symbolize_keys
|
|
rescue StandardError
|
|
{}
|
|
end
|
|
|
|
private
|
|
|
|
def secret_key
|
|
Rails.application.secret_key_base
|
|
end
|
|
end
|