Sha256: 183365117574abece89dd599f825bd586c7415469a82d668ef9772e09b4073f9

Contents?: true

Size: 1.28 KB

Versions: 6

Compression:

Stored size: 1.28 KB

Contents

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

6 entries across 6 versions & 1 rubygems

Version Path
devise_jwt_auth-0.1.5 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.1.4 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.1.3 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.1.2 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.1.1 lib/devise_jwt_auth/token_factory.rb
devise_jwt_auth-0.1.0 lib/devise_jwt_auth/token_factory.rb