Module: Nyauth::SessionConcern

Extended by:
ActiveSupport::Concern
Defined in:
app/controllers/concerns/nyauth/session_concern.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#current_authenticatedObject



41
42
43
44
45
# File 'app/controllers/concerns/nyauth/session_concern.rb', line 41

def current_authenticated
  return nil unless session_value = session[signed_in_session_key]
  klass_name, client_id = Nyauth::Encryptor.decrypt(session_value).split(':')
  klass_name.constantize.find(client_id)
end

#require_authentication!(options = {}) ⇒ Object

ex.) before_action -> { require_authentication! as: :user }, only: :secret_action



34
35
36
37
38
39
# File 'app/controllers/concerns/nyauth/session_concern.rb', line 34

def require_authentication!(options = {})
  options.reverse_merge!(as: :user)
  return if self.class.allow_actions == :all
  return if self.class.allow_actions.present? && request[:action].to_sym.in?(self.class.allow_actions)
  head :unauthorized unless signed_in?(options)
end

#sign_in(client) ⇒ Object

ex.) sign_in(client)



14
15
16
17
# File 'app/controllers/concerns/nyauth/session_concern.rb', line 14

def (client)
  return unless client
  store_signed_in_session(client)
end

#sign_outObject

ex.) sign_out



28
29
30
# File 'app/controllers/concerns/nyauth/session_concern.rb', line 28

def sign_out
  reset_session
end

#signed_in?(options = {}) ⇒ Boolean

ex.) signed_in?(as: :user)

Returns:

  • (Boolean)


21
22
23
24
# File 'app/controllers/concerns/nyauth/session_concern.rb', line 21

def signed_in?(options = {})
  options.reverse_merge!(as: :user)
  session[signed_in_session_key].present?
end

#store_signed_in_session(client) ⇒ Object



47
48
49
# File 'app/controllers/concerns/nyauth/session_concern.rb', line 47

def store_signed_in_session(client)
  session[signed_in_session_key] = signed_in_session_object(client)
end