Module: Sinatra::DoormanAuth

Defined in:
lib/oauth_doorman/sinatra.rb

Defined Under Namespace

Modules: Helpers

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/oauth_doorman/sinatra.rb', line 40

def self.registered(app)
  app.helpers DoormanAuth::Helpers

  app.set :sessions, true
  app.set :session_secret, Digest::SHA1.hexdigest("#{self.class} #{ENV['RACK_ENV']}")

  #Set url to show after logout
  app.set :default_url_after_sign_out, "/"
  #Set url to show after login
  app.set :default_url_after_sign_in, "/"

  # oauth settings
  app.set :doorman_app_name, "#{self.class}"
  app.set :doorman_client_id, "FILL"
  app.set :doorman_client_secret, "FILL"

  app.get "/oauth2callback" do
    door = doorman
    door.init_connection_by_code(request.params["code"])
    user_email = door.get_user_email
    if authorize_user user_email
      session[:email] = user_email
      redirect settings.
    else
      raise OauthAuthorizationInvalid, "Sorry but your email: #{user_email} is not valid for authorization into #{settings.doorman_app_name}."
    end

    raise OauthAuthorizationError, "Sorry but your attemp to atuhorizate was not succesfull, try again..."
  end

  app.get "/sign_out" do
    session[:email] = nil
    redirect settings.default_url_after_sign_out
  end
end