上下文 -
据我所知,这是我必须遵循的流程:
var config = {
'client_id': MY_CLIENT_ID',
'scope': 'https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email',
'response_type': 'code',
'access_type': 'offline'
};
https://developers.google.com/accounts/docs/OAuth2WebServer#refresh
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
code=CODE_RETURNED
client_id=CLIENT_ID_RETURNED
client_secret=API_CLIENT_SECRET
redirect_uri=API_REDIRECT_API
grant_type=authorization_code
然而,当我尝试运行此调用时,我总是会遇到某种类型的错误。现在我很难得到以下内容:
{
error: "redirect_uri_mismatch"
}
我在Google API设置页面和代码中将以下列为我的重定向uri:
http://localhost/
之前使用此流程的人的任何建议? 我是否需要为获取刷新令牌设置不同的内容?
答案 0 :(得分:0)
关于为什么整个过程失败的问题是因为我没有包括' redirect_uri'在我最初的电话中获取代码。
我应该有:
var config = {
'client_id': MY_CLIENT_ID',
'scope': 'https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email',
'response_type': 'code',
'access_type': 'offline',
'redirect_uri': MY_REDIRECT_URI
};
然后,redirect_uri被数据命中,我设置了一个简单的节点路由来监听,生成,然后为每个经过身份验证的用户存储访问和刷新令牌。