diff options
author | Thomas Klausner <domm@plix.at> | 2020-11-22 17:40:08 +0100 |
---|---|---|
committer | Thomas Klausner <domm@plix.at> | 2020-11-22 17:40:08 +0100 |
commit | 638e072b85aa598a789eea3405c79f438c0ac5c3 (patch) | |
tree | d9e683919cf744df497c153bed9f1067e6ad4500 | |
parent | eabba1407e2c87f2cb4cdf7e9616a9e98e328e16 (diff) |
fix bug in token-refresh (Ruud)
-rw-r--r-- | lib/LWP/Authen/OAuth2.pm | 7 |
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); |