Sha256: 4fbdf7876a31024c6444d80868bc1642ad936185a53565ddc0af89de3ac0d5d7
Contents?: true
Size: 716 Bytes
Versions: 22
Compression:
Stored size: 716 Bytes
Contents
# frozen_string_literal: true require 'openssl' module Devise class TokenGenerator def initialize(key_generator, digest = "SHA256") @key_generator = key_generator @digest = digest end def digest(klass, column, value) value.present? && OpenSSL::HMAC.hexdigest(@digest, key_for(column), value.to_s) end def generate(klass, column) key = key_for(column) loop do raw = Devise.friendly_token enc = OpenSSL::HMAC.hexdigest(@digest, key, raw) break [raw, enc] unless klass.to_adapter.find_first({ column => enc }) end end private def key_for(column) @key_generator.generate_key("Devise #{column}") end end end
Version data entries
22 entries across 22 versions & 3 rubygems
Version | Path |
---|---|
devise-4.4.1 | lib/devise/token_generator.rb |
devise-4.4.0 | lib/devise/token_generator.rb |