如何解决使用 Microsoft/Google OAuth 到站点的 tokenInvoke-WebRequest
我需要通过 Powershell 访问此主站点 https://www.truecaller.com/search/eg/xxxx。
我使用表单身份验证为 Invoke-WebRequest 编写了许多 PowerShell 脚本, 但这次该网站使用的是来自 Google 或 Microsoft 的外部身份验证。
通过谷歌搜索,我注意到我必须先获得访问授权码。
该站点从 Google Api 配置为 Web 应用程序,而不是桌面应用程序的问题, 所以它拒绝给我网页上的授权码。
我不拥有该网站,因此我无法从网站或身份验证方面进行任何更改。
通常,当我在浏览器中打开主站点并选择从 Google 进行身份验证时,它会将我重定向到
https://accounts.google.com/o/oauth2/v2/auth/identifier?response_type=code&client_id=22378802832-klpcj5dosalhnu0vshg3hjm9qgidmp8j.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fwww.truecaller.com%2Fauth%2Fgoogle%2Fcallback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcontacts.readonly&flowName=GeneralOAuthFlow
我正在使用下面的代码来捕获稍后在另一个命令中使用的授权代码,以获取访问令牌,然后调用对主站点的 webrequest。
$clientId = "22378802832-klpcj5dosalhnu0vshg3hjm9qgidmp8j.apps.googleusercontent.com"
$redirect_uri1 = "https%3A%2F%2Fwww.truecaller.com%2Fauth%2Fgoogle%2Fcallback"
$redirect_uri2 = "urn:ietf:wg:oauth:2.0:oob"
$scopes = "https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/contacts.readonly"
start-process "https://accounts.google.com/o/oauth2/v2/auth?client_id=$clientId&scope=$scopes&access_type=offline&response_type=code&redirect_uri=$redirect_uri1"
当我使用 $redirect_uri1
谷歌在网络上询问我允许应用程序访问我的帐户后,它正常转到网站并且不给我授权码,因为重定向 URL 是 https://www.truecaller.com/auth/google/callback
当我使用 $redirect_uri2
Google 拒绝完成身份验证过程,因为我使用 URL 重定向桌面 URL,并且此 clientID 配置为使用网络重定向,我面临以下错误。
我的问题,我如何将 Invoke-WebRequest 或 Invoke-RestMethod 用于这个通过 OAuth 使用外部身份验证的主网站,它是双重的吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。