Sha256: a2caed39bd0f82c00da4c2ec3c7dd029ed83898ffb417614676a0d59410a15fe
Contents?: true
Size: 727 Bytes
Versions: 1
Compression:
Stored size: 727 Bytes
Contents
# frozen_string_literal: true require "rbnacl" module PUNK class ProveClaimService < Service args :session, :secret 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 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 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
punk-0.4.1 | lib/punk/services/prove_claim.rb |