我在服务器端刷新谷歌访问令牌时遇到了问题。
RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, String> params = new LinkedMultiValueMap();
params.add("client_id", clientSecrets.getDetails().getClientId());
params.add("client_secret", clientSecrets.getDetails().getClientSecret());
params.add("refresh_token", this.refreshToken);
params.add("grant_type", "refresh_token");
String result = restTemplate.postForObject(requestUrl, params, String.class);
我从谷歌认证服务器获得的响应只是403状态代码。 和消息是这样的
{"error":"internal_failure","error_description":"SSL is required to perform this operation."}
为了刷新访问令牌,是否必须在我的服务器上使用SSL? 它已经在我的本地服务器上进行了测试,并没有附加任何SSL。
此代码的引用来自以下URL。 https://developers.google.com/identity/protocols/OAuth2WebServer#offline
答案 0 :(得分:1)
我通过为谷歌api添加'https'协议而不是'http'协议解决了这个问题
我打电话给
http://www.googleapis.com/oauth2/v4/token
但是对于SSL调用
https://www.googleapis.com/oauth2/v4/token
需要刷新访问令牌