omniauth-campus 1.9 → 2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/omniauth-campus/version.rb +1 -1
- data/lib/omniauth/strategies/campus.rb +51 -14
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dc60d7df8ef6f6ef8545d6f77a4ae7dd6236d79
|
4
|
+
data.tar.gz: e7a941aab44da8085dfb8bc8cf7e8855b75b323f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb2903d75b3be39fb800e25f6d5a751f92e823c8a9399a941764793e34c646426184f54c03ca06221539089dd374436da14c6ac313122c53628dbfd577f928dd
|
7
|
+
data.tar.gz: 0fee707b02c1475b9ff42512236844988487aefe5e7c314650c5a97ba539ee355da772f5b4badd36baa3b5467e4d9b2e0566fc89d30758e59c6050a7b9ca1c83
|
@@ -19,32 +19,69 @@ module OmniAuth
|
|
19
19
|
option :consumer_secret, nil
|
20
20
|
|
21
21
|
option :client_options, {
|
22
|
-
:site => "http://dev-oauth-test.gotpantheon.com
|
22
|
+
:site => "http://dev-oauth-test.gotpantheon.com",
|
23
23
|
:proxy => ENV['http_proxy'] ? URI(ENV['http_proxy']) : nil
|
24
24
|
}
|
25
25
|
|
26
26
|
option :name, "campus"
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
28
|
+
attr_reader :access_token
|
29
|
+
#option :client_options, {:authorize_path => '/oauth/authenticate'
|
30
|
+
#:site => 'http://dev-oauth-test.gotpantheon.com/myawesomejson',
|
31
|
+
#:proxy => ENV['http_proxy'] ? URI(ENV['http_proxy']) : nil}
|
32
|
+
|
33
|
+
def consumer
|
34
|
+
consumer = ::OAuth::Consumer.new(options.consumer_key, options.consumer_secret, options.client_options)
|
35
|
+
consumer.http.open_timeout = options.open_timeout if options.open_timeout
|
36
|
+
consumer.http.read_timeout = options.read_timeout if options.read_timeout
|
37
|
+
consumer
|
38
|
+
end
|
34
39
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
def request_phase
|
41
|
+
request_token = consumer.get_request_token({:oauth_callback => callback_url}, options.request_params)
|
42
|
+
session['oauth'] ||= {}
|
43
|
+
session['oauth'][name.to_s] = {'callback_confirmed' => request_token.callback_confirmed?, 'request_token' => request_token.token, 'request_secret' => request_token.secret}
|
44
|
+
|
45
|
+
if request_token.callback_confirmed?
|
46
|
+
redirect request_token.authorize_url(options[:authorize_params])
|
47
|
+
else
|
48
|
+
redirect request_token.authorize_url(options[:authorize_params].merge(:oauth_callback => callback_url))
|
39
49
|
end
|
40
50
|
|
41
|
-
|
42
|
-
|
51
|
+
rescue ::Timeout::Error => e
|
52
|
+
fail!(:timeout, e)
|
53
|
+
rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e
|
54
|
+
fail!(:service_unavailable, e)
|
55
|
+
end
|
56
|
+
|
57
|
+
def callback_phase
|
58
|
+
raise OmniAuth::NoSessionError.new("Session Expired") if session['oauth'].nil?
|
59
|
+
|
60
|
+
request_token = ::OAuth::RequestToken.new(consumer, session['oauth'][name.to_s].delete('request_token'), session['oauth'][name.to_s].delete('request_secret'))
|
61
|
+
|
62
|
+
opts = {}
|
63
|
+
if session['oauth'][name.to_s]['callback_confirmed']
|
64
|
+
opts[:oauth_verifier] = request['oauth_verifier']
|
43
65
|
else
|
44
|
-
|
66
|
+
opts[:oauth_callback] = callback_url
|
45
67
|
end
|
46
68
|
|
69
|
+
@access_token = request_token.get_access_token(opts)
|
70
|
+
super
|
71
|
+
rescue ::Timeout::Error => e
|
72
|
+
fail!(:timeout, e)
|
73
|
+
rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e
|
74
|
+
fail!(:service_unavailable, e)
|
75
|
+
rescue ::OAuth::Unauthorized => e
|
76
|
+
fail!(:invalid_credentials, e)
|
77
|
+
rescue ::MultiJson::DecodeError => e
|
78
|
+
fail!(:invalid_response, e)
|
79
|
+
rescue ::OmniAuth::NoSessionError => e
|
80
|
+
fail!(:session_expired, e)
|
81
|
+
end
|
47
82
|
|
83
|
+
credentials do
|
84
|
+
{'token' => access_token.token, 'secret' => access_token.secret}
|
48
85
|
end
|
49
86
|
|
50
87
|
|