omniauth-edenred 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/lib/omniauth-edenred/version.rb +1 -1
- data/lib/omniauth/strategies/edenred.rb +28 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '093d931564f36f856613aaf13e21e59a827b0a96'
|
4
|
+
data.tar.gz: 6216e624f8d38fdceba3de4fd8074ca86cb59405
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9243a49225c5ec58706ac4d19f05f104ecd50d0b147d65e00fb7a653adf0921dfdaa464155a720fe84c7d3903b1f21f27a91f54769d37978d919d8d1a6ed0bd8
|
7
|
+
data.tar.gz: 6307ffb22efcc95b2b1e5b80cf767755c68c1cf7aa03a7d62b7e51925d80b143ab89fc8046b65c08d8c4074418c1c13c33c925ac90aabd0d536649d384af2f48
|
data/.gitignore
ADDED
@@ -26,6 +26,33 @@ module OmniAuth
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
# Added JWT.decode
|
30
|
+
def callback_phase
|
31
|
+
begin
|
32
|
+
error = request.params["error_reason"] || request.params["error"]
|
33
|
+
if error
|
34
|
+
fail!(error, CallbackError.new(request.params["error"], request.params["error_description"] || request.params["error_reason"], request.params["error_uri"]))
|
35
|
+
elsif !options.provider_ignores_state && (request.params["state"].to_s.empty? || request.params["state"] != session.delete("omniauth.state"))
|
36
|
+
fail!(:csrf_detected, CallbackError.new(:csrf_detected, "CSRF detected"))
|
37
|
+
else
|
38
|
+
self.access_token = build_access_token
|
39
|
+
self.access_token = access_token.refresh! if access_token.expired?
|
40
|
+
|
41
|
+
@raw_info = JWT.decode(access_token.params['id_token'], nil, false).first
|
42
|
+
env['omniauth.auth'] = auth_hash
|
43
|
+
call_app!
|
44
|
+
end
|
45
|
+
rescue ::OAuth2::Error, CallbackError => e
|
46
|
+
fail!(:invalid_credentials, e)
|
47
|
+
rescue ::Timeout::Error, ::Errno::ETIMEDOUT => e
|
48
|
+
fail!(:timeout, e)
|
49
|
+
rescue ::SocketError => e
|
50
|
+
fail!(:failed_to_connect, e)
|
51
|
+
rescue ::JWT::DecodeError => e
|
52
|
+
fail!(:jwt_decode, e)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
29
56
|
uid { raw_info['username'] }
|
30
57
|
|
31
58
|
info do
|
@@ -42,7 +69,7 @@ module OmniAuth
|
|
42
69
|
end
|
43
70
|
|
44
71
|
def raw_info
|
45
|
-
@raw_info
|
72
|
+
@raw_info || {}
|
46
73
|
end
|
47
74
|
|
48
75
|
# Required for omniauth-oauth2 >= 1.4
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-edenred
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan VUKOVICH TRIBOUHARET
|
@@ -44,6 +44,7 @@ executables: []
|
|
44
44
|
extensions: []
|
45
45
|
extra_rdoc_files: []
|
46
46
|
files:
|
47
|
+
- ".gitignore"
|
47
48
|
- Gemfile
|
48
49
|
- LICENSE.md
|
49
50
|
- README.md
|