Class: User

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
lib/generators/auth/templates/models/user.rb

Instance Method Summary collapse

Instance Method Details

#generate_password_reset_token!Object



24
25
26
27
28
# File 'lib/generators/auth/templates/models/user.rb', line 24

def generate_password_reset_token!
    self.reset_token = SecureRandom.urlsafe_base64
    self.reset_sent_at = Time.now.utc
    save!(validate: false) # Skip validations for password reset
end

#generate_refresh_tokenObject

returns the RAW token (client uses this), stores only SHA256 digest



9
10
11
12
13
14
15
16
17
# File 'lib/generators/auth/templates/models/user.rb', line 9

def generate_refresh_token
    raw   = SecureRandom.hex(64)
    digest = Digest::SHA256.hexdigest(raw)
    refresh_tokens.create!(
    token_digest: digest,
    expires_at: 7.days.from_now
    )
    raw
end

#password_reset_expired?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/generators/auth/templates/models/user.rb', line 30

def password_reset_expired?
    reset_sent_at < 1.hour.ago
end

#revoke_all_refresh_tokens!Object

revoke all tokens for this user



20
21
22
# File 'lib/generators/auth/templates/models/user.rb', line 20

def revoke_all_refresh_tokens!
    refresh_tokens.update_all(revoked_at: Time.current)
end