有什么方法可以生成访问令牌来测试oauth使用gmail登录?
我创建了一个谷歌应用程序,并得到了客户端和秘密ID。
我知道facebook会允许您通过此网址https://developers.facebook.com/tools/accesstoken/
执行此操作谷歌有没有这样的方法?
感谢。
答案 0 :(得分:12)
使用Google OAuth游乐场:
https://developers.google.com/oauthplayground/
请求:
POST /oauth2/v3/token HTTP/1.1
Host: www.googleapis.com
Content-Type: application/x-www-form-urlencoded
code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&
client_id=8819981768.apps.googleusercontent.com&
client_secret={client_secret}&
redirect_uri=https://oauth2-login-demo.appspot.com/code&
grant_type=authorization_code
(成功)回复:
{
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
"expires_in":3920,
"token_type":"Bearer"
}
我还强烈建议您阅读Google OAuth 2.0文档 https://developers.google.com/accounts/docs/OAuth2WebServer
答案 1 :(得分:0)
目前最好的解决方案是登录Google帐户,捕获此会话的Google cookie,然后在以后的测试中使用这些cookie获取授权码。每次测试运行时,它都可以创建一个授权码,并将其交换为访问令牌。我发现这些Cookie可以持续6个月或更长时间。
我通过使用Chrome浏览器来做到这一点:
https://accounts.google.com/o/oauth2/auth...
的请求。 复制此完整URL 。ACCOUNT_CHOOSER
,APISID
,CONSENT
,GAPS
,... 现在,在测试期间,您可以对上面捕获的URL进行HTTP GET请求,并且在请求中应包括上面捕获的cookie。在code=...
标头中显示的URL中,您应该获得一个带有Location
的302响应。
最后,在测试中,您可以使用到https://www.googleapis.com/oauth2/v4/token的POST将此code
交换为访问和刷新令牌。
Google OAuth运动场在这里无济于事,因为您仍然需要一些手动交互来生成授权代码(运动场不是“自动的”)。
答案 2 :(得分:0)
别忘了您应该能够模拟Google OAuth。 换句话说,在大多数测试情况下(监视和某些类型的负载测试除外),应该有可能模拟到Google OAuth和相应回调的成功连接。为此,您可能只需要使用正在使用的测试工具中已经存在的方法即可。
即使此答案不能直接回答主题,我认为也有必要在此处编写它,以使某些人可以考虑针对大多数自动测试情况的解决方法。
答案 3 :(得分:0)
如果您只想使用问题标题中所述的任何oauth令牌测试API(不一定是从测试用户登录流程中获取的API),则可以使用服务帐户和oauth2l实用程序进行curl调用GCP文档中概述了以下内容:
https://cloud.google.com/service-usage/docs/getting-started
同样,您可以像常规测试用户一样向服务帐户授予权限。