POSTMAN:无法完成OAuth2.0登录

2024-01-02

我想请求一个令牌,以便我的 Postman 可以登录我的 Gmail 帐户,然后我可以调用 Google Cloud API。

我正在尝试输入我的 Gmail 电子邮件地址及其密码,如您从这张图片中看到的

最终目标是获得这样的 API

https://monitoring.googleapis.com/v1/projects/firetestjimis/dashboards

我可以通过从 gcloud 登录我的 Gmail 帐户(“gcloud auth application-default login”),然后使用 gcloud auth application-default print-access-token 打印令牌,复制打印的令牌并将其粘贴到访问令牌中(邮差)。嗯,它有效,但它有点迫使我启动 gcloud 并安装它。我很确定我可以通过与登录 gcloud 的同一用户进行签名来达到相同的想法。我只是不知道如何与邮差一起做。我过去几个小时读到的所有内容都让我看到了上面粘贴的图像,但由于这个问题的错误,它失败了。

如果相关的话,这是我获取令牌的 gcloud 控制台

C:\Program Files (x86)\Google\Cloud SDK>gcloud auth application-default print-access-token
C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\..\lib\third_party\google\auth\_default.py:69: UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK. We recommend that most server applications use service accounts instead. If your application continues to use end user credentials from Cloud SDK, you might receive a "quota exceeded" or "API not enabled" error. For more information about service accounts, see https://cloud.google.com/docs/authentication/
  warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)
ya29.a0Ae4lvC3-3WxUmx... removed token ... hs251yTql3eEE

C:\Program Files (x86)\Google\Cloud SDK>

*** 首次发布后进行了一些编辑

其他暂定结果是

Erro 400: invalid_request
Invalid parameter value for redirect_uri: Missing scheme: /

当我尝试时

我从中复制的客户端 ID

*** 根据Madhead的建议进行编辑

我仔细遵循了建议的所有步骤,实际上我可以通过单击“获取新访问令牌”直接从 Postman 获取 Google 令牌。尽管如此还是得到了

{
  "error": {
    "code": 403,
    "message": "Request had insufficient authentication scopes.",
    "status": "PERMISSION_DENIED"
  }
}

对于 Postman 的这两个尝试(粘贴了 curl 脚本,因为它比 Postman 打印屏幕更容易从其他人那里进行评估)

curl --location --request GET 'https://monitoring.googleapis.com/v1/projects/firetestjimis/dashboards' --header 'Authorization: Bearer ya29. *** token *** kO3Fg'

curl --location --request POST 'https://firestore.googleapis.com/v1/projects/firetestjimis/databases/(default)/documents:runQuery' --header 'Authorization: Bearer ya29. *** token *** kO3Fg' --header 'Content-Type: application/json' --data-raw '{
"structuredQuery": {
    "where" : {
        "fieldFilter" : { 
        "field": {"fieldPath": "id"}, 
        "op":"EQUAL", 
        "value": {"stringValue": "1"}
        }
    },
    "from": [{"collectionId": "transfer"}]
    }
}'

这是在中创建的 OAuth 客户端 ID凭证屏幕 https://console.cloud.google.com/apis/credentials?project=firetestjimis

{"web":{"client_id":"7953 *** 5k6e9ivtdg.apps.googleusercontent.com","project_id":"firetestjimis","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"IJGCe *** Du6bU","redirect_uris":["https://oauth.pstmn.io/v1/callback"]}}

下载自

And here is the OAuth consent screen

*** 已编辑

*** 已编辑

  • edited

*** 成功添加两个范围后进行编辑

它说“因为您添加了敏感范围,所以您的同意屏幕在发布之前需要经过 Google 验证”

当我单击“提交进行验证”时,我看到它抱怨应用程序主页和应用程序隐私链接


实际上可以使用 Postman 访问 OAuth 2.0 安全的 Google API。

首先,您需要在 Google Cloud Console 项目中创建 OAuth 客户端。它应该是一个“Web 应用程序”客户端,并且重定向 URI 应该是https://oauth.pstmn.io/v1/callback:

记下客户端 ID 和客户端密钥:

现在,去找邮递员。创建新请求。在“授权”选项卡上,选择 OAuth 2.0,然后单击“获取新访问令牌”:

填写表格。

  • 回调网址:https://oauth.pstmn.io/v1/callback(将由自动设置Authorize using browser).
  • 使用浏览器授权:true
  • 验证网址:https://accounts.google.com/o/oauth2/auth
  • 访问令牌网址:https://accounts.google.com/o/oauth2/token
  • 客户端 ID:${您的客户端 ID}
  • 客户端秘密:${您的客户端秘密}
  • 范围:${您的范围},例如https://www.googleapis.com/auth/gmail.readonlyGmail 只读访问。确保您的项目中允许相应的范围和 API(例如在同意屏幕配置页面上)。

单击“请求令牌”。浏览器将打开 Google 的 OAuth 同意屏幕pstmn.io应用程序。如有必要,请登录并授予访问权限。在此过程结束时,将打开一个弹出窗口(确保它没有被您的浏览器阻止),将您重定向回 Postman 应用程序。

去使用你的代币吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

POSTMAN:无法完成OAuth2.0登录 的相关文章

随机推荐

  • 如何在mvc5中将文化设置为全局

    我正在使用资源文件来切换在 mvc5 中构建的 Web 应用程序中的语言 在索引文件中 它读取我设置的文化值 我从layout cshtml 调用设置区域性方法 并使用以下代码调用其值 Layout Views Shared Layout
  • 将网格高度调整为可用屏幕,无需滚动条

    我应该使用什么网格属性来使网格完美地保持在屏幕内 Using height 100vh on wrapper调整高度 但引入了滚动条 为了删除不需要的滚动条 我尝试设置body margin 0 但我希望在整个网格周围有一个边距 而不产生滚
  • 响应对象 - 使用 Mollie 和 Omnipay 付款

    我正在尝试在 Laravel 项目中使用 Omnipay 和 Mollie 创建付款方式 我正在使用以下 2 个库 https github com barryvdh laravel omnipay https github com bar
  • Python:计算一组整数中所有元素之间的差异[重复]

    这个问题在这里已经有答案了 我想计算一组整数中所有元素之间的绝对差 我正在尝试做abs x y where x and y是集合中的两个元素 我想对所有组合执行此操作 并将结果列表保存在一个新集合中 我想计算一组整数中所有元素之间的绝对差
  • 参考错误:Jest 环境被拆除后“导入”文件

    我是测试反应本机应用程序的新手 我从 Jest 开始 运行名为 App test js 的测试 该测试通过了 但我收到参考错误 You are试图importJest 环境被拆除后的文件 我努力了 jest useFakeTimers an
  • 为 IQueryable 生成表达式 [重复]

    这个问题在这里已经有答案了 我正在使用 LINQ gt WCF 数据服务 gt EF 它支持 LINQ 的子集 但有一些注意事项 一旦学习了各种事情的技巧和解决方法 我就没有遇到任何麻烦 但我想制作一个可重用的表达式生成器来仅比较Date的
  • Git 合并在我的文件中留下了 HEAD 标记

    我尝试使用 Git 在命令行中合并文件 这时出现一条错误消息 告诉我合并已中止 我以为事情就这样结束了 但后来我意识到我的文件中有 gitmarks 就像这样 start expression validchar 0 9a zA Z int
  • 如何使倒计时器在页面刷新时不重置

    我正在为我的项目创建一个在线考试页面 我有一个倒计时器 但它会在页面刷新时重置 怎样才能让它不重置呢 通过从数据库获取时间来设置计时器 我正在使用 php mysql 请帮我 这是我的代码
  • ODBC 和 OleDB 有什么区别?

    我在这里找到了这个问题 OLEDB 与 ODBC https stackoverflow com questions 271504 oledb v s odbc 这给了我更多信息 但并没有真正回答我要问的问题 所以我将从那里开始 我正在使用
  • React 和 Material-UI:使用 TypeScript 在 createStyles() 中未定义主题

    我正在学习 React with TypeScript 并使用 Material UI 框架作为前端 我尝试让媒体查询正常工作 但出现错误 未捕获的类型错误 无法读取未定义的属性 up 在样式 webpack internal app co
  • SQL 查找查询结果的大小

    所以基本上我正在执行 SQL 选择查询 但我想知道我要撤回多少数据 多少千字节 实际上 显示客户统计数据 http blog sqlauthority com 2009 10 01 sql server sql server managem
  • 为什么 ActionDispatch::Routing::RouteSet 需要这么长时间

    我在 Rails 4 2 1 之上使用 Grape 为我们的应用程序提供 API 但是当我今天检查 Newrelic 的性能时我发现RackApp Proc call and Grape API Root call占用了大量的时间 见截图
  • 在 Mathematica 中使用 MapAt 中的 All

    我经常有一个成对的列表 例如 data 0 0 0 1 12 4 2 14 6 3 25 1 我想做点什么 例如Rescale 到所有第二个元素而不触及第一个元素 我知道的最巧妙的方法是 Transpose MapAt Rescale Tr
  • Sharepoint 2007 和

    问候 我试图让我的 Sharepoint 2007 网站在 IE 中浏览时以标准模式呈现 由于 DOCTYPE html 使我可能担心的每个浏览器都能做到这一点 所以我决定使用它 我到处读到 标准模式可能会导致某些 OOTB 功能和样式 弹
  • 将多个组件绑定到支持 bean 中的一个实例(Primefaces 树)

    我希望能够在我的页面上的 2 个位置拥有 Primefaces 树 原因是我想让具有相同数据的两棵树具有完全相同的状态 相同的节点展开等 我尝试将两个实例绑定到支持 bean 中的相同值 但这会导致仅渲染其中一个实例 我做错了吗 这应该以不
  • Erlang JSON 库:序列化性能?

    Erlang 有许多可用的 JSON 库 但我不清楚哪些具有最佳性能特征 其次是易用性 特别是对于 erlang to json 序列化 我的用例需要 JSON 解析和序列化 但 Erlang 代码可能会产生比接收输入至少多两个数量级的 J
  • spring form taglib禁用属性真的必须解析为字符串吗?

    我最近一直在研究 spring 表单标签库 并遇到了一个相当令人不安的现象
  • 使用 .net MySql 连接器未关闭 MySql 连接

    MySql 连接将进入睡眠模式而不是在 mysql 中关闭 我正在使用 MySql Data 6 5 4 版本与 mysql 进行通信 我不确定下面的代码中我做错了什么 try using var conn new MySqlConnect
  • 如何拦截 cypress 的服务器端 api 调用

    我使用 Nuxt js 作为前端框架 使用 Laravel 作为 API 服务器 并使用 Cypress 编写一些 e2e 测试 我试图通过使用减少 asyncData api 调用cy 拦截 https docs cypress io a
  • POSTMAN:无法完成OAuth2.0登录

    我想请求一个令牌 以便我的 Postman 可以登录我的 Gmail 帐户 然后我可以调用 Google Cloud API 我正在尝试输入我的 Gmail 电子邮件地址及其密码 如您从这张图片中看到的 最终目标是获得这样的 API htt