1234567891011121314151617181920212223242526272829303132333435 |
- # A Session contains the information about a logged-in user.
- class Session < ApplicationRecord
- # @!attribute ip
- # @return [String]
- # the IP address of the client that started the session.
- #
- # @!attribute expires
- # @return [TimeWithZone]
- # when the user must be logged out.
- #
- # @!attribute remember_digest
- # @return [String]
- # a salted hash of the user's remember token. This token may be used if
- # the user continues a session by using the 'remember me' option.
- #
- # @!attribute active
- # @return [Boolean]
- # whether or not the session may still be used to authenticate.
- # Inactive sessions may be retained for logging, but must not allow a user
- # to continue using the system.
- belongs_to :user
- # @return [String] a new random token.
- def self.new_token
- SecureRandom.urlsafe_base64
- end
- # @return [String] a BCrypt digest of the given string.
- def self.digest(string)
- cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost
- BCrypt::Password.create(string, cost: cost)
- end
- end
|