2015-03-19 19:03:17 +01:00
|
|
|
require 'omniauth-oauth2'
|
|
|
|
|
|
|
|
module OmniAuth
|
|
|
|
module Strategies
|
2015-03-19 22:37:16 +01:00
|
|
|
class Zeuswpi < OmniAuth::Strategies::OAuth2
|
|
|
|
|
|
|
|
option :provider_ignores_state, true
|
|
|
|
|
2015-03-19 19:03:17 +01:00
|
|
|
# Give your strategy a name.
|
2015-03-19 22:37:16 +01:00
|
|
|
option :name, "zeuswpi"
|
2015-03-19 19:03:17 +01:00
|
|
|
|
|
|
|
# This is where you pass the options you would pass when
|
|
|
|
# initializing your consumer from the OAuth gem.
|
|
|
|
option :client_options, {
|
2015-03-19 22:37:16 +01:00
|
|
|
site: "http://kelder.zeus.ugent.be",
|
|
|
|
authorize_url: "/oauth/oauth2/authorize/",
|
|
|
|
token_url: "/oauth/oauth2/token/",
|
2015-03-19 19:03:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
# These are called after authentication has succeeded. If
|
|
|
|
# possible, you should try to set the UID without making
|
|
|
|
# additional calls (if the user id is returned with the token
|
|
|
|
# or as a URI parameter). This may not be possible with all
|
|
|
|
# providers.
|
2015-03-19 22:37:16 +01:00
|
|
|
uid{ raw_info['username'] }
|
2015-03-19 19:03:17 +01:00
|
|
|
|
|
|
|
info do
|
|
|
|
{
|
2015-03-19 22:37:16 +01:00
|
|
|
# :nickname => raw_info['username'],
|
2015-03-19 19:03:17 +01:00
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
extra do
|
|
|
|
{
|
|
|
|
'raw_info' => raw_info
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
def raw_info
|
2015-03-19 22:37:16 +01:00
|
|
|
@raw_info ||= access_token.get('/oauth/api/current_user/').parsed
|
2015-03-19 19:03:17 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|