Module: ExvoAuth::Controllers::Base
- Defined in:
- lib/exvo_auth/controllers/base.rb
Instance Method Summary collapse
- #authenticate_app_in_scope!(scope) ⇒ Object
-
#authenticate_user!(opts = {}) ⇒ Object
A before filter to protect your sensitive actions.
- #callback_key ⇒ Object
- #current_app_id ⇒ Object
- #current_user ⇒ Object
-
#sign_in_and_redirect! ⇒ Object
Usually this method is called from your sessions#create.
- #sign_in_path ⇒ Object
-
#sign_out_and_redirect!(return_to = "/") ⇒ Object
Redirect to sign_out_url, signs out and redirects back to “/” (by default).
- #sign_up_path ⇒ Object
- #signed_in? ⇒ Boolean
Instance Method Details
#authenticate_app_in_scope!(scope) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/exvo_auth/controllers/base.rb', line 40 def authenticate_app_in_scope!(scope) raise("SSL not configured. Your api needs to be exposed using https protocol.") unless request.ssl? || Exvo::Helpers.auth_require_ssl == false send(basic_authentication_method_name) do |app_id, access_token| current_scopes = ExvoAuth::Autonomous::Provider.new( :app_id => app_id, :access_token => access_token ).scopes @current_app_id = app_id current_scopes.include?(scope.to_s) end end |
#authenticate_user!(opts = {}) ⇒ Object
A before filter to protect your sensitive actions.
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/exvo_auth/controllers/base.rb', line 3 def authenticate_user!(opts = {}) if !signed_in? store_request! callback_value = params[callback_key] if callback_value redirect_to non_interactive_sign_in_path(callback_key => callback_value) else redirect_to opts[:redirect_to] || sign_in_path end end end |
#callback_key ⇒ Object
63 64 65 |
# File 'lib/exvo_auth/controllers/base.rb', line 63 def callback_key "_callback" end |
#current_app_id ⇒ Object
72 73 74 |
# File 'lib/exvo_auth/controllers/base.rb', line 72 def current_app_id @current_app_id end |
#current_user ⇒ Object
67 68 69 70 |
# File 'lib/exvo_auth/controllers/base.rb', line 67 def current_user return @current_user unless @current_user.nil? @current_user = session[:user_uid] && find_or_create_user_by_uid(session[:user_uid]) end |
#sign_in_and_redirect! ⇒ Object
Usually this method is called from your sessions#create.
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/exvo_auth/controllers/base.rb', line 18 def sign_in_and_redirect! session[:user_uid] = request.env["omniauth.auth"]["uid"] url = if params[:state] == "popup" Exvo::Helpers..auth_uri + "/close_popup.html" elsif params[:state] # if not popup then an url params[:state] else request_replay_url || "/" end redirect_to url end |
#sign_in_path ⇒ Object
55 56 57 |
# File 'lib/exvo_auth/controllers/base.rb', line 55 def sign_in_path "/auth/exvo" end |
#sign_out_and_redirect!(return_to = "/") ⇒ Object
Redirect to sign_out_url, signs out and redirects back to “/” (by default). Usuallly this method is called from your sessions#destroy.
34 35 36 37 38 |
# File 'lib/exvo_auth/controllers/base.rb', line 34 def sign_out_and_redirect!(return_to = "/") session.clear remove_instance_variable(:@current_user) if instance_variable_defined?(:@current_user) redirect_to sign_out_url(return_to) end |
#sign_up_path ⇒ Object
59 60 61 |
# File 'lib/exvo_auth/controllers/base.rb', line 59 def sign_up_path "/auth/exvo?x_sign_up=true" end |
#signed_in? ⇒ Boolean
76 77 78 |
# File 'lib/exvo_auth/controllers/base.rb', line 76 def signed_in? !!current_user end |