我有一个使用 Google OAuth2 来保护安全的网络应用。我需要通过邮递员测试许多 API 端点,但它们要求用户使用 google 进行身份验证。
当我访问某些 API 时,例如localhost:8080/user
,如果用户未经过身份验证,则网络应用会重定向到 Google 登录页面,并在身份验证后发送结果。否则,如果用户已经过身份验证,则只会发回结果。我也可以使用localhost:8080/login
显式登录 user(which 是登录按钮在主页上执行的操作)。这适用于浏览器,但它不适用于邮递员。
我如何在邮差中做同样的事情?尝试访问 API 会返回 google 登录页面,但无法提供 credentials(username,密码和 OTP)。有没有办法使用localhost:8080/login
端点登录?
2 回答
我认为您可以使用“Pre-request 脚本”功能来完成您的需要。
假设 POST /login 可访问,并且您能够存储经过身份验证的会话的会话数据,则可以使用“Pre-request 脚本”功能在每个请求之前执行身份验证。 (这可以在集合级别或请求 level.)完成
以下是我在一些需要身份验证的端点上所做的示例...
这不是处理受保护端点 pre-authenticating 的最佳方法;而不是发出一个请求,你每次都要做两个。我通常做的是点击 POST /login,在 collection/environment/global 变量中存储我需要的结果,并在我的其他请求中使用这些变量。我使用“two-request”方法作为我需要执行 third-party auth 的情况(类似于我认为你正在尝试做的事情),或者当我 creating/debugging 是需要对每个请求进行身份验证的 API 时。
如果我离开这里,请在评论中告诉我,我会更新我的 response(s)。
可以使用选择 OAuth2 作为 auth 选项时显示的“获取新访问令牌”选项。
选择此选项后,添加相关详细信息,与应用程序中的相关内容相同。现在,单击请求令牌应显示一个简单的浏览器,如窗口,其中将显示 OAuth 提供程序登录页面。
登录后,Postman 会保存令牌,然后可以将其用于进一步的请求。
我创建了一个博客文章更多的细节。