Class: Devision::TokenGenerator
- Inherits:
-
Object
- Object
- Devision::TokenGenerator
- Defined in:
- lib/devision/token_generator.rb
Instance Method Summary collapse
- #digest(klass, column, value) ⇒ Object
- #generate(klass, column) ⇒ Object
-
#initialize(key_generator, digest = "SHA256") ⇒ TokenGenerator
constructor
A new instance of TokenGenerator.
Constructor Details
#initialize(key_generator, digest = "SHA256") ⇒ TokenGenerator
Returns a new instance of TokenGenerator.
9 10 11 12 |
# File 'lib/devision/token_generator.rb', line 9 def initialize(key_generator, digest="SHA256") @key_generator = key_generator @digest = digest end |
Instance Method Details
#digest(klass, column, value) ⇒ Object
14 15 16 |
# File 'lib/devision/token_generator.rb', line 14 def digest(klass, column, value) value.present? && OpenSSL::HMAC.hexdigest(@digest, key_for(column), value.to_s) end |
#generate(klass, column) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/devision/token_generator.rb', line 18 def generate(klass, column) key = key_for(column) loop do raw = Devision.nice_token enc = OpenSSL::HMAC.hexdigest(@digest, key, raw) break [raw, enc] unless klass.to_adapter.find_first({ column => enc }) end end |