Sha256: d40b9f9384ad1ac77c0000c8cdc7a0d281f31a8c842cc2c6bd400d28c74d7440

Contents?: true

Size: 1.31 KB

Versions: 8

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

require 'jwt'

module DeviseJwtAuth
  # A token management factory which allow generate token objects and check them.
  module TokenFactory
    def self.create_refresh_token(payload)
      if payload[:exp].blank? && payload['exp'].blank?
        payload[:exp] = (Time.zone.now + DeviseJwtAuth.refresh_token_lifespan).to_i
      end

      JWT.encode payload, DeviseJwtAuth.refresh_token_encryption_key
    end

    def self.create_access_token(payload)
      if payload[:exp].blank? && payload['exp'].blank?
        payload[:exp] = (Time.zone.now + DeviseJwtAuth.access_token_lifespan).to_i
      end

      JWT.encode payload, DeviseJwtAuth.access_token_encryption_key
    end

    def self.decode_refresh_token(token)
      JWT.decode(token, DeviseJwtAuth.refresh_token_encryption_key).first
    rescue JWT::ExpiredSignature
      {}
    rescue JWT::DecodeError
      {}
    rescue JWT::VerificationError
      {}
    rescue NoMethodError
      {}
    rescue TypeError
      {}
    end

    def self.decode_access_token(token)
      JWT.decode(token, DeviseJwtAuth.access_token_encryption_key).first
    rescue JWT::ExpiredSignature
      {}
    rescue JWT::DecodeError
      {}
    rescue JWT::VerificationError
      {}
    rescue NoMethodError
      {}
    rescue TypeError
      {}
    end
  end
end

Version data entries

8 entries across 8 versions & 3 rubygems

Version Path
devise_jwt_auth722-0.1.7 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth7-0.1.7 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.4.1 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.4.0 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.3.0 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.2.0 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.1.7 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.1.6 lib/devise_jwt_auth/token_factory.rb