我正在自动化REST终结点,这些终结点通常通过运行Google提供的oAuth用户同意流程(如此处https://developers.google.com/identity/protocols/OpenIDConnect
)所获得的“ authorizationCode”获取“ authorizationCode”的起点是Google Auth URL,它可以有效地将用户同意流加载到浏览器中。例如https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=12345&redirect_uri=https%3A%2F%2Fblah.com&scope=https%3A%2F%2Fwww.googleapis.com&access_type=offline&prompt=consent
我想看看人们如何在没有人工干预的情况下解决这个问题。查阅console.developers.google.com上的“ OAuth同意屏幕”设置,可以避免使用绕过驱动该UI以获得“ authorizationCode”的必要性的选项。我发现您可以设置提示符= none,但似乎只有在用户之前已经通过用户同意流程进行了身份验证并且不需要新的AuthorizationCode时,它才是一种选择。
赞赏任何建议。理想的情况是,您可以将此安全流程置于“测试模式”以实现自动化,就像您可以将Re-Captcha置于“测试模式”以避免挑战一样。
答案 0 :(得分:0)
如果浏览器页面是简单的HTML表单提交,则可以simulate that in Karate,这就是我所知道的所有团队的工作。演示中甚至还有一个OAuth 2示例:oauth2.feature
。有很多方法可以从响应中提取信息(正文,标头或cookie)。如果这不可能,我会感到惊讶。
如果您真的找不到任何解决方案,那么Karate支持直接自动化Chrome浏览器,因此您可以尝试一下:https://github.com/intuit/karate/tree/master/karate-core