summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Klausner <domm@plix.at>2020-11-22 17:40:08 +0100
committerThomas Klausner <domm@plix.at>2020-11-22 17:40:08 +0100
commit638e072b85aa598a789eea3405c79f438c0ac5c3 (patch)
treed9e683919cf744df497c153bed9f1067e6ad4500
parenteabba1407e2c87f2cb4cdf7e9616a9e98e328e16 (diff)
fix bug in token-refresh (Ruud)
-rw-r--r--lib/LWP/Authen/OAuth2.pm7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/LWP/Authen/OAuth2.pm b/lib/LWP/Authen/OAuth2.pm
index bb20524..944758b 100644
--- a/lib/LWP/Authen/OAuth2.pm
+++ b/lib/LWP/Authen/OAuth2.pm
@@ -216,9 +216,12 @@ sub refresh_access_token {
if (not (ref($tokens))) {
# Did I get JSON?
my $data = eval {decode_json($tokens)};
+
if ($data and not $@) {
- # Assume I got it.
- $tokens = $data;
+ my $class = $data->{_class} or croak("No _class in token_string '$tokens'");
+ eval {load($class)};
+ if ($@) { croak("Can't load access token class '$class': $@"); }
+ $tokens = $class->from_ref($data);
}
}
return $self->_set_tokens(tokens => $tokens, skip_save => 1);