class HerokuSso::CustomStrategy

Public Instance Methods

authenticate!() click to toggle source
# File lib/devise-heroku-sso.rb, line 9
def authenticate!
  resource = mapping.to.find_for_authentication(:id => id)
  return authentication_result_for resource
end
valid?() click to toggle source
# File lib/devise-heroku-sso.rb, line 5
def valid?
  valid_token? && !token_expired?
end

Private Instance Methods

authentication_result_for(resource) click to toggle source
# File lib/devise-heroku-sso.rb, line 20
def authentication_result_for resource
  resource ? success_authentication(resource) : fail!
end
id() click to toggle source
# File lib/devise-heroku-sso.rb, line 31
def id
  params[:id].to_i
end
pre_token() click to toggle source
# File lib/devise-heroku-sso.rb, line 35
def pre_token
  "#{params[:id]}:#{sso_salt}:#{params[:timestamp]}"
end
sso_salt() click to toggle source
# File lib/devise-heroku-sso.rb, line 16
def sso_salt
  ENV['HEROKU_SSO_SALT'] || ENV['SSO_SALT']
end
success_authentication(resource) click to toggle source
# File lib/devise-heroku-sso.rb, line 24
def success_authentication resource
  cookies['heroku-nav-data'] = { :value => params['nav-data'],
                                 :path => '/' ,
                                 :expires => 24.hours.from_now  }
  success!(resource)
end
token() click to toggle source
# File lib/devise-heroku-sso.rb, line 39
def token
  Digest::SHA1.hexdigest(pre_token).to_s
end
token_expired?() click to toggle source
# File lib/devise-heroku-sso.rb, line 47
def token_expired?
  params[:timestamp].to_i < (Time.now - 5.minutes).to_i
end
valid_token?() click to toggle source
# File lib/devise-heroku-sso.rb, line 43
def valid_token?
  token == params[:token]
end