class PUNK::ProveClaimService

Public Instance Methods

process() click to toggle source
# File lib/punk/services/prove_claim.rb, line 19
def process
  session.increment_attempts
  session.reload
  raise BadRequest, "Too many attempts" if session.attempt_count >= 3
  hash = RbNaCl::PasswordHash.scrypt(secret, session.salt, 1_048_576, 16_777_216)
  proven = (session[:hash] == hash)
  session.verify! if proven
  proven
end
validate() click to toggle source
# File lib/punk/services/prove_claim.rb, line 9
def validate
  validates_not_null :session
  validates_not_empty :session
  return if session.blank?
  session.timeout?
  validates_type Session, :session
  validates_state :session, :pending
  validates_event :session, :verify
end