Sha256: 9e13bde7e1d817559697d2e68b36c0568f99f9c7543ab622fd6038f7589aea10

Contents?: true

Size: 834 Bytes

Versions: 16

Compression:

Stored size: 834 Bytes

Contents

module Workarea
  class User
    class AuthenticationToken
      include ApplicationDocument
      include UrlToken

      field :expires_at, type: Time, default: -> { AuthenticationToken.expires_at }

      belongs_to :user, class_name: 'Workarea::User', index: true

      def self.expires_at
        Time.now + Workarea.config.authentication_token_expiration
      end

      def self.authenticate(token, options = {})
        result = where(token: token).first
        return if result.try(:expired?)
        result
      end

      def self.refresh!(token, options = {})
        result = where(token: token).first
        return if result.try(:expired?)
        return unless result.update_attribute(:expires_at, expires_at)
        result
      end

      def expired?
        expires_at <= Time.now
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
workarea-api-4.5.6 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.5.6 app/models/workarea/user/authentication_token.rb
workarea-api-4.5.5 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.5.5 app/models/workarea/user/authentication_token.rb
workarea-api-4.5.4 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.5.4 app/models/workarea/user/authentication_token.rb
workarea-api-4.5.3 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.5.3 app/models/workarea/user/authentication_token.rb
workarea-api-4.5.2 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.5.2 app/models/workarea/user/authentication_token.rb
workarea-api-4.5.0 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.5.0 app/models/workarea/user/authentication_token.rb
workarea-api-4.4.7 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.4.7 app/models/workarea/user/authentication_token.rb
workarea-api-4.4.6 storefront/app/models/workarea/user/authentication_token.rb
workarea-api-storefront-4.4.6 app/models/workarea/user/authentication_token.rb