module TokenVerification::ClassMethods

Public Instance Methods

verifier_for(purpose) click to toggle source
# File lib/generators/templates/models/concerns/token_verification.rb, line 17
def verifier_for(purpose)
  @verifiers ||= {}
  @verifiers.fetch(purpose) do |p|
    @verifiers[p] = Rails.application.message_verifier("#{self.name}-#{p.to_s}")
  end
end
verify_signature!(purpose, token) { |record, data| ... } click to toggle source
# File lib/generators/templates/models/concerns/token_verification.rb, line 24
def verify_signature!(purpose, token)
  data = self.verifier_for(purpose).verify(token)
  record = self.find(data[:id])
  record.tap do
    if block_given?
      yield(record, data[:expires_at])
    end
  end
end