module IntercomApp::SessionsConcern
Public Instance Methods
callback()
click to toggle source
# File lib/intercom-app/sessions_concern.rb, line 13 def callback if response = request.env['omniauth.auth'] app = { intercom_token: response['credentials']['token'], intercom_app_id: response['extra']['raw_info']['app']['id_code'], name: response['extra']['raw_info']['name'], email: response['extra']['raw_info']['email'] } app = app.merge(callback_hash.call(session, response)) if callback_hash session[:intercom] = IntercomApp::SessionRepository.store(app) session[:intercom_app_id] = app[:intercom_app_id] IntercomApp::WebhooksManager.new(intercom_token: app[:intercom_token]).create_webhooks_subscriptions if IntercomApp.configuration.webhooks.present? redirect_to return_address unless IntercomApp.configuration.oauth_modal else redirect_to login_url end end
destroy()
click to toggle source
# File lib/intercom-app/sessions_concern.rb, line 31 def destroy session[:intercom] = nil session[:intercom_app_id] = nil session[:intercom_token] = nil redirect_to login_url end
login()
click to toggle source
# File lib/intercom-app/sessions_concern.rb, line 9 def login store_in_session_before_login.call(session, params) if store_in_session_before_login end
Private Instance Methods
callback_hash()
click to toggle source
# File lib/intercom-app/sessions_concern.rb, line 43 def callback_hash IntercomApp.configuration.callback_hash end
return_address()
click to toggle source
# File lib/intercom-app/sessions_concern.rb, line 39 def return_address session.delete(:return_to) || '/' end
store_in_session_before_login()
click to toggle source
# File lib/intercom-app/sessions_concern.rb, line 47 def store_in_session_before_login IntercomApp.configuration.store_in_session_before_login end