Module: RailsSso::Helpers

Defined in:
lib/rails_sso/helpers.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
# File 'lib/rails_sso/helpers.rb', line 3

def self.included(base)
  base.class_eval do
    helper_method :current_user, :user_signed_in?
  end
end

Instance Method Details

#access_tokenObject



23
24
25
# File 'lib/rails_sso/helpers.rb', line 23

def access_token
  RailsSso::AccessToken.new(session[:access_token], session[:refresh_token])
end

#authenticate_user!Object



19
20
21
# File 'lib/rails_sso/helpers.rb', line 19

def authenticate_user!
  redirect_to  unless user_signed_in?
end

#current_userObject



9
10
11
12
13
# File 'lib/rails_sso/helpers.rb', line 9

def current_user
  @current_user ||= fetch_user do |user|
    update_user(user).call
  end
end

#invalidate_access_token!Object



27
28
29
30
31
32
33
# File 'lib/rails_sso/helpers.rb', line 27

def invalidate_access_token!
  if RailsSso.provider_sign_out_path
    access_token.delete(RailsSso.provider_sign_out_path)
  end

  reset_session
end

#refresh_access_token!Object



40
41
42
43
44
45
46
# File 'lib/rails_sso/helpers.rb', line 40

def refresh_access_token!
  save_access_token!(access_token.refresh!)

  yield if block_given?
rescue ::OAuth2::Error
  nil
end

#save_access_token!(access_token) ⇒ Object



35
36
37
38
# File 'lib/rails_sso/helpers.rb', line 35

def save_access_token!(access_token)
  session[:access_token] = access_token.token
  session[:refresh_token] = access_token.refresh_token
end

#user_signed_in?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/rails_sso/helpers.rb', line 15

def user_signed_in?
  !!current_user
end