Sha256: e866e0c2708b7773c3b80eac95bc9ee0b8d6a6358ae402e75ed350f515bbc17a
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
module Sso module Warden module Hooks class AfterAuthentication include ::Sso::Logging attr_reader :user, :warden, :options delegate :request, to: :warden delegate :params, to: :request def self.to_proc proc do |user, warden, options| new(user: user, warden: warden, options: options).call end end def initialize(user:, warden:, options:) @user, @warden, @options = user, warden, options end def call debug { "Starting hook because this is considered the first login of the current session..." } generate_session end def generate_session debug { "Generating a Sso:Session for user #{user.id.inspect} for the session cookie at the Sso server..." } attributes = { ip: request.ip, agent: request.user_agent } sso_session = Sso::Session.generate_master(user, attributes) debug { "Sso:Session with ID #{sso_session.id} generated successfuly. Persisting it in session..." } session["sso_session_id"] = sso_session.id.to_s end def scope scope = options[:scope] end def session warden.session(scope) end def logged_in? warden.authenticated?(:user) && session end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
doorkeeper_sso-0.2.0 | lib/sso/warden/hooks/after_authentication.rb |