easy_meli 0.6.19 → 0.6.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +1 -1
- data/README.md +11 -1
- data/lib/easy_meli/authorization_client.rb +5 -1
- data/lib/easy_meli/version.rb +1 -1
- data/lib/easy_meli.rb +4 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fb7843afd879cb4c1135bf405d1dea609070df4f2f85b91e6b39ea982779cff4
|
|
4
|
+
data.tar.gz: b4aecdd72175b04e4563ae1d92a056fb1a5b8738e4d533ad46741a5fb957cce9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ec1655affa627fa376b9f7e6bb86efba207e0b1e9d78e227ea09bb935d85f353ed7b8a656d0267c6cfa02690b7e5b774bdd5b0336e613c0b43a340e6c97c7b15
|
|
7
|
+
data.tar.gz: eea9caf35705aa77ed6a88fa2438ed29d95cacf28deec1c20dae52c0ef8d43cb3a58a538c7a79d8ab3680729c137c78dd6b513a2b8f380af3cf2421444cab6b1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
## V 0.6.20
|
|
3
|
+
- Return the complete token payload when refreshing tokens so clients can persist Mercado Libre's rotated refresh token.
|
|
4
|
+
|
|
2
5
|
## V 0.6.19
|
|
3
6
|
- Update addressable from 2.8.8 to 2.9.0 (security fix for ReDoS vulnerability in Addressable templates)
|
|
4
7
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -42,7 +42,17 @@ response = EasyMeli.create_token('the_code_in_the_redirect', 'the_same_redirect_
|
|
|
42
42
|
```
|
|
43
43
|
This will return a response object with a json body that you can easily access via `response.to_h`.
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
To refresh an access token and preserve Mercado Libre's rotated refresh token, call
|
|
46
|
+
|
|
47
|
+
```ruby
|
|
48
|
+
tokens = EasyMeli.refresh_tokens('a_refresh_token')
|
|
49
|
+
access_token = tokens['access_token']
|
|
50
|
+
refresh_token = tokens['refresh_token']
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Store the returned refresh token after every successful refresh. Mercado Libre refresh tokens are single-use, so the token passed to `refresh_tokens` is no longer valid after the exchange succeeds.
|
|
54
|
+
|
|
55
|
+
If you only need the new access token, call
|
|
46
56
|
|
|
47
57
|
```ruby
|
|
48
58
|
access_token = EasyMeli.access_token('a_refresh_token')
|
|
@@ -50,9 +50,13 @@ class EasyMeli::AuthorizationClient
|
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def self.access_token(refresh_token, logger: nil)
|
|
53
|
+
refresh_tokens(refresh_token, logger: logger)[EasyMeli::AuthorizationClient::ACCESS_TOKEN_KEY]
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def self.refresh_tokens(refresh_token, logger: nil)
|
|
53
57
|
response = self.new(logger: logger).access_token_with_response(refresh_token)
|
|
54
58
|
if response.success?
|
|
55
|
-
response.to_h
|
|
59
|
+
response.to_h
|
|
56
60
|
else
|
|
57
61
|
exception = EasyMeli::ErrorParser.error_class(response) || EasyMeli::InvalidTokenError
|
|
58
62
|
|
data/lib/easy_meli/version.rb
CHANGED
data/lib/easy_meli.rb
CHANGED
|
@@ -30,6 +30,10 @@ module EasyMeli
|
|
|
30
30
|
EasyMeli::AuthorizationClient.access_token(refresh_token, logger: logger)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
def self.refresh_tokens(refresh_token, logger: nil)
|
|
34
|
+
EasyMeli::AuthorizationClient.refresh_tokens(refresh_token, logger: logger)
|
|
35
|
+
end
|
|
36
|
+
|
|
33
37
|
def self.api_client(access_token: nil, refresh_token: nil, logger: nil)
|
|
34
38
|
access_token ||= self.access_token(refresh_token, logger: logger) if refresh_token
|
|
35
39
|
EasyMeli::ApiClient.new(access_token, logger: logger)
|