JWT Token Service (services/base_token_service.rb)

chatwoot · app/services/base_token_service.rb · ruby · MIT
auth, security, lang:ruby

A base service for generating and decoding JSON Web Tokens. Use this to implement secure authentication or session management in Ruby applications.

# Source: https://github.com/chatwoot/chatwoot | License: MIT | Copyright 2017-2026 Chatwoot Inc
# Provided via justclaw.it.com; keep this notice with the code.
class BaseTokenService
  pattr_initialize [:payload, :token]

  def generate_token
    JWT.encode(token_payload, secret_key, algorithm)
  end

  def decode_token
    JWT.decode(token, secret_key, true, algorithm: algorithm).first.symbolize_keys
  rescue JWT::ExpiredSignature, JWT::DecodeError
    {}
  end

  private

  def token_payload
    payload || {}
  end

  def secret_key
    Rails.application.secret_key_base
  end

  def algorithm
    'HS256'
  end
end

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key