Я обнаружил, что scribe не извлекает refresh_token
в токен доступа.scribe не поддерживает refresh_token в oauth 2.0 правильно?
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
. Scribe просто игнорирует его:
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);
}
Это вызывает проблемы. Маркер доступа может истек в будущем. Я должен обновить токен доступа с помощью сохраненного токена обновления в каждом предварительном предложении входа, но нет способа получить его напрямую.
Я планировал улучшить писец, добавив эту функцию (это не сложно) ... но кто-нибудь уже это сделал?
Вам также необходимо пройти client_id и client_secret ... Обратите внимание, что если Scribe не делал oauth2, я d просто используйте oauth-signpost :-) – ejain
этот указатель? https://github.com/mttkay/signpost Последняя фиксация - более года назад, и она по-прежнему не работает с Apache LinkedIn. Удачи с этим. –