Class: User
- Inherits:
-
ApplicationRecord
- Object
- ApplicationRecord
- User
- Defined in:
- lib/generators/auth/templates/models/user.rb
Instance Method Summary collapse
- #generate_password_reset_token! ⇒ Object
-
#generate_refresh_token ⇒ Object
returns the RAW token (client uses this), stores only SHA256 digest.
- #password_reset_expired? ⇒ Boolean
-
#revoke_all_refresh_tokens! ⇒ Object
revoke all tokens for this user.
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_token ⇒ Object
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
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 |