Javascript 在Google OAuth2中,用户登录并同意后如何获取访问令牌和刷新令牌?
我想通过谷歌API导入一个Javascript 在Google OAuth2中,用户登录并同意后如何获取访问令牌和刷新令牌?,javascript,google-api,google-api-python-client,google-api-js-client,Javascript,Google Api,Google Api Python Client,Google Api Js Client,我想通过谷歌API导入一个Gmail用户的联系人 我有以下几点: 使用客户端密码和密钥获取授权url。这是用户访问以允许对我的应用程序进行权限的url 授权url重定向到应用程序设置中指定的重定向uri 我在url中有一个查询参数code,我猜这就是文档所说的授权代码 问题: 如果可能的话,我想交换此代码以通过javascript获取访问令牌和刷新令牌。但是我在javascript中看不到这部分的任何文档 在我的服务器端,我这样做是为了获得授权url: token = gdata.gauth.O
Gmail
用户的联系人
我有以下几点:
客户端密码和密钥
获取授权url。这是用户访问以允许对我的应用程序进行权限的urlcode
,我猜这就是文档所说的授权代码javascript
获取访问令牌
和刷新令牌
。但是我在javascript
中看不到这部分的任何文档
在我的服务器端,我这样做是为了获得授权url
:
token = gdata.gauth.OAuth2Token(client_id=settings.GMAIL_CLIENT_ID,
client_secret=settings.GMAIL_API_KEY,
scope=scope, user_agent=user_agent)
auth_url = token.generate_authorize_url(redirect_uri=redirect_uri)
然后将用户重定向到auth\u url
。现在,一旦用户允许请求的权限,他们将使用查询参数code
重定向回我的站点。我想从这里使用javascript
来获取访问令牌
另一个选项是,一旦用户被重定向到我的站点,就在服务器端获取访问令牌
,并将其与响应一起返回给他,但我真的不想这样做。简短回答:如果您想使用OAuth2客户端身份验证,您使用的文档是错误的
现在是细节
OAuth2有4种授权类型:
授权代码
隐式
资源所有者密码凭据和
客户端凭据
如果你想要更多的细节,你可以阅读解释
您已经为Web服务器的OAuth2指定了Google文档,它适合授权代码类型。它依赖于通过SSL的Web服务器数据交换,因为它涉及到交换客户机\u机密
也就是说,如果您尝试使用JavaScript执行POST请求以获取access\u令牌
,您将公开您的client\u secret
,因为它是POST调用中的必需参数
如果要尝试请求不使用服务器端代码的access\u令牌
,则需要使用隐式授予类型
您可以在中找到隐式授权类型的谷歌文档。您的问题解决了吗?我也有同样的问题。