module Sinatra::Persona

Public Class Methods

registered(app) click to toggle source
# File lib/sinatra_persona.rb, line 9
def self.registered(app)
  app.helpers Persona::Helpers
  app.post '/auth/persona_verifier' do
    assertion = params[:assertion]
    audience = request.host_with_port
    verifier_uri = settings.respond_to?(:persona_verifier_uri) ? settings.persona_verifier_uri : nil
    email = ::Persona::Verifier.verify_assertion(assertion, audience, verifier_uri: verifier_uri)
    if email.nil?
      session.delete(:persona)
    else
      session[:persona] = email
    end
    if session.respond_to? :after_persona_redirect
      redirect to settings.after_persona_redirect
    else
      redirect to '/'
    end
  end
end