Sha256: 151dd83fbc3579ef44451dad9ee4ae72cb1c44e542786fff76c9488f0612e2c1

Contents?: true

Size: 1.8 KB

Versions: 4

Compression:

Stored size: 1.8 KB

Contents

require 'authenticate/configuration'
require 'authenticate/token'
require 'authenticate/callbacks/authenticatable'

module Authenticate

  # Required to be included in your configued user class, which is `User` by
  # default, but can be changed with {Configuration#user_model=}.
  #
  #   class User
  #     include Authenticate::User
  #     # ...
  #   end
  #
  # To change the user class from the default User, assign it :
  #
  #   Authenticate.configure do |config|
  #     config.user_model = 'MyPackage::Gundan'
  #   end
  #
  # The fields and methods included by Authenticate::User will depend on what modules you have included in your
  # configuration. When your user class is loaded, User will load any modules at that time. If you have another
  # initializer that loads User before Authenticate's initializer has run, this may cause interfere with the
  # configuration of your user.
  #
  # Every user will have two methods to manage session tokens:
  # - generate_session_token - generates and sets the Authenticate session token
  # - reset_session_token! - calls generate_session_token and save! immediately
  #
  module User
    extend ActiveSupport::Concern

    included do
      include Modules
      load_modules
    end

    # Generate a new session token for the user, overwriting the existing session token, if any.
    # This is not automatically persisted; call {#reset_session_token!} to automatically
    # generate and persist the session token update.
    def generate_session_token
      self.session_token = Authenticate::Token.new
    end

    # Generate a new session token and persist the change, ignoring validations.
    # This effectively signs out all existing sessions. Called as part of logout.
    def reset_session_token!
      generate_session_token
      save validate: false
    end


  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
authenticate-0.2.3 lib/authenticate/user.rb
authenticate-0.2.2 lib/authenticate/user.rb
authenticate-0.2.1 lib/authenticate/user.rb
authenticate-0.2.0 lib/authenticate/user.rb