如何使用没有SSL的刷新令牌刷新谷歌访问令牌?

时间:2018-05-04 05:21:37

标签: authentication access-token refresh-token

我在服务器端刷新谷歌访问令牌时遇到了问题。

        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

1 个答案:

答案 0 :(得分:1)

我通过为谷歌api添加'https'协议而不是'http'协议解决了这个问题

我打电话给

http://www.googleapis.com/oauth2/v4/token

但是对于SSL调用

https://www.googleapis.com/oauth2/v4/token

需要刷新访问令牌