class PUNK::ChallengeClaimService
Public Instance Methods
process()
click to toggle source
# File lib/punk/services/challenge_claim.rb, line 18 def process secret = SecretService.run.result salt = RbNaCl::Random.random_bytes(RbNaCl::PasswordHash::SCrypt::SALTBYTES) hash = RbNaCl::PasswordHash.scrypt(secret, salt, 1_048_576, 16_777_216) session.update(salt: salt, hash: hash) session.challenge! identity = session.identity case identity.claim_type when :email SendEmailWorker.perform_async( from: "GroupFire Accounts <noreply@groupfire.com>", to: identity.claim, subject: "[GroupFire] Verification Code", template: "verify", tags: [:auth], variables: { name: identity.user&.name || "New User", secret: secret } ) when :phone SendSmsWorker.perform_async( to: identity.claim, body: "Your GroupFire verification code is: #{secret}." ) end end
validate()
click to toggle source
# File lib/punk/services/challenge_claim.rb, line 9 def validate validates_not_null :session validates_not_empty :session return if session.blank? validates_type Session, :session validates_state :session, :created validates_event :session, :challenge end