class Ak4r::TokenGenerator
Constants
- DIGEST
Public Class Methods
digest(value)
click to toggle source
# File lib/ak4r/token_generator.rb, line 12 def self.digest(value) key = generate_key value.present? && OpenSSL::HMAC.hexdigest(DIGEST, key, value.to_s) end
friendly_token(length = 20)
click to toggle source
# File lib/ak4r/token_generator.rb, line 30 def self.friendly_token(length = 20) # To calculate real characters, we must perform this operation. # See SecureRandom.urlsafe_base64 rlength = (length * 3) / 4 SecureRandom.urlsafe_base64(rlength).tr('lIO0', 'sxyz') end
generate()
click to toggle source
# File lib/ak4r/token_generator.rb, line 17 def self.generate key = generate_key loop do raw = self.friendly_token enc = OpenSSL::HMAC.hexdigest(DIGEST, key, raw) break [raw, enc] unless Ak4r::ApiKey.where(key_hash: enc).any? end end
generate_key()
click to toggle source
# File lib/ak4r/token_generator.rb, line 26 def self.generate_key return Rails.application.key_generator.generate_key(Ak4r.config.salt) end