Я обнаружил, что писец не извлекает refresh_token
в токене доступа.
Экстрактор OAuth 1.0 содержит:
Preconditions.checkEmptyString(response, "Response body is incorrect. Can't extract a token from an empty string");
String token = extract(response, TOKEN_REGEX);
String secret = extract(response, SECRET_REGEX);
return new Token(token, secret, response);
Содержит секрет токена.
Но в OAuth2.0 нет секретного токена, а refresh_token
.Писец просто игнорирует это:
Preconditions.checkEmptyString(response, "Cannot extract a token from a null or empty String");
Matcher matcher = accessTokenPattern.matcher(response);
if(matcher.find())
{
return new Token(matcher.group(1), "", response);
}
else
{
throw new OAuthException("Cannot extract an acces token. Response was: " + response);
}
Это вызывает проблему.Токен доступа может истечь в будущем.Я должен обновлять токен доступа сохраненным токеном обновления при каждом входе в систему, но я не могу получить его напрямую.
Я планировал улучшить писца, добавить эту функцию (это не сложно) ... но есть кто-нибудьуже сделали это?