Module: Warden::GitHub::SSO

Defined in:
lib/warden/github/sso.rb

Instance Method Summary collapse

Instance Method Details

#warden_github_sso_session_needs_reverification?(user, expiry_in_seconds) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
# File 'lib/warden/github/sso.rb', line 24

def warden_github_sso_session_needs_reverification?(user, expiry_in_seconds)
  user.using_single_sign_out? &&
    (warden_github_sso_session_verified_at <= (Time.now.utc.to_i - expiry_in_seconds))
end

#warden_github_sso_session_reverify!Object



20
21
22
# File 'lib/warden/github/sso.rb', line 20

def warden_github_sso_session_reverify!
  session[:warden_github_sso_session_verified_at] = Time.now.utc.to_i
end

#warden_github_sso_session_valid?(user, expiry_in_seconds = 30) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
7
8
9
10
11
12
13
14
# File 'lib/warden/github/sso.rb', line 4

def warden_github_sso_session_valid?(user, expiry_in_seconds = 30)
  return true if defined?(::Rails) && ::Rails.env.test?
  if warden_github_sso_session_needs_reverification?(user, expiry_in_seconds)
    if user.browser_session_valid?(expiry_in_seconds)
      warden_github_sso_session_reverify!
      return true
    end
    return false
  end
  true
end

#warden_github_sso_session_verified_atObject



16
17
18
# File 'lib/warden/github/sso.rb', line 16

def warden_github_sso_session_verified_at
  session[:warden_github_sso_session_verified_at] || Time.now.utc.to_i - 86400
end