如何在没有 SSL 的情况下使用刷新令牌刷新谷歌访问令牌?
Posted
技术标签:
【中文标题】如何在没有 SSL 的情况下使用刷新令牌刷新谷歌访问令牌?【英文标题】:how to refresh google access token with refresh token without SSL? 【发布时间】:2018-10-14 12:17:49 【问题描述】:我在服务器端刷新 google 访问令牌时遇到问题。
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
【问题讨论】:
我通过为 google api 添加 'https' 协议而不是 'http' 协议解决了这个问题 【参考方案1】:我通过为 google api 添加“https”协议而不是“http”协议解决了这个问题
我打过电话
http://www.googleapis.com/oauth2/v4/token
但对于 SSL 调用
https://www.googleapis.com/oauth2/v4/token
需要刷新访问令牌
【讨论】:
以上是关于如何在没有 SSL 的情况下使用刷新令牌刷新谷歌访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章
在没有刷新令牌的情况下获取 AdWords customerId
NodeJS,如何使用谷歌 api 获取带有刷新令牌的新令牌?