getschomp/commute-calculator-api

View on GitHub
lib/json_web_token.rb

Summary

Maintainability
A
0 mins
Test Coverage
class JsonWebToken
  # A singleton class that encodes and decodes json web tokens for json web token authentication
  class << self
    def encode(payload, exp = 24.hours.from_now)
      payload[:exp] = exp.to_i
      JWT.encode(payload, Rails.application.secrets.secret_key_base)
    end

    def decode(token)
      body = JWT.decode(token, Rails.application.secrets.secret_key_base)[0]
      HashWithIndifferentAccess.new body
    rescue => e
      Rails.logger.error(e)
      nil
    end
  end
end