Sha256: 58a18a195abaac8824b4b1abdd344d7ca7bf7e5cc9741d63a42940b3e57fc41a
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
module RailsSso module Helpers def self.included(base) base.class_eval do helper_method :current_user_data, :user_signed_in? end end def current_user_data @current_user ||= fetch_user end def user_signed_in? !!current_user_data end def authenticate_user! redirect_to sso.sign_in_path unless user_signed_in? end def access_token RailsSso::AccessToken.new(session[:access_token], session[:refresh_token]) end def invalidate_access_token! if RailsSso.provider_sign_out_path access_token.delete(RailsSso.provider_sign_out_path) end reset_session end def save_access_token!(access_token) session[:access_token] = access_token.token session[:refresh_token] = access_token.refresh_token end def refresh_access_token! save_access_token!(access_token.refresh!) yield if block_given? rescue ::OAuth2::Error nil end private def fetch_user(&block) return unless session[:access_token] RailsSso::FetchUser.new(access_token).call(&block) rescue ::OAuth2::Error refresh_access_token! do RailsSso::FetchUser.new(access_token).call(&block) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_sso-0.2.0 | lib/rails_sso/helpers.rb |