【发布时间】:2020-10-23 10:00:06
【问题描述】:
我正在编写一个由 SPA 和 API 组成的项目。 在 SPA 上,我有一个将 Google 或 Microsoft 帐户链接到用户帐户的按钮。 API 可以随时调用 google/microsoft apis。
我已经使用授权代码流成功地使用了谷歌:
- 使用查询参数 response_type=code 和 access_type=offline 从 SPA 将用户重定向到 https://accounts.google.com/o/oauth2/v2/auth
- 将返回的代码发送到 API
- API 调用 https://oauth2.googleapis.com/token 获取 access_token 和 refresh_token
- 令牌保存在数据库中,API 需要时可以随时使用。
==============
Microsoft 有类似的授权流程 (https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow),但由于 CORS 策略,我无法使用从 SPA 检索到的授权代码到 API 中。 我没有使用 PKCE 代码,因为令牌是从使用 client_id 和 client_secret 的 API 中检索的。
=============
我错过了什么吗?是否有可能从 SPA 获取授权码并使用它从外部 API 生成 access_tokens 和 refresh_tokens ?
非常感谢,对不起我的英语!
【问题讨论】:
标签: azure rest oauth-2.0 oauth