Class: ActiveModel::PasswordReset::MessageVerifier

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/active_model/password_reset/message_verifier.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMessageVerifier

Returns a new instance of MessageVerifier.



24
25
26
27
28
# File 'lib/active_model/password_reset/message_verifier.rb', line 24

def initialize
  key_generator = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base, iterations: 1000)
  secret = key_generator.generate_key("password reset salt")
  @message_verifier = ActiveSupport::MessageVerifier.new(secret)
end

Instance Attribute Details

#message_verifierObject (readonly)

Returns the value of attribute message_verifier.



8
9
10
# File 'lib/active_model/password_reset/message_verifier.rb', line 8

def message_verifier
  @message_verifier
end

Class Method Details

.generate(object) ⇒ Object



11
12
13
14
# File 'lib/active_model/password_reset/message_verifier.rb', line 11

def generate(object)
  token = instance.message_verifier.generate(object)
  Base64.urlsafe_encode64(token)
end

.verify(string) ⇒ Object



16
17
18
19
20
21
# File 'lib/active_model/password_reset/message_verifier.rb', line 16

def verify(string)
  token = Base64.urlsafe_decode64(string)
  instance.message_verifier.verify(token)
rescue ActiveSupport::MessageVerifier::InvalidSignature, ArgumentError
  raise TokenInvalid
end