【问题标题】:Need info with the Microsoft OAuth2 flow需要 Microsoft OAuth2 流程的信息
【发布时间】:2020-10-23 10:00:06
【问题描述】:

我正在编写一个由 SPA 和 API 组成的项目。 在 SPA 上,我有一个将 Google 或 Microsoft 帐户链接到用户帐户的按钮。 API 可以随时调用 google/microsoft apis。

我已经使用授权代码流成功地使用了谷歌:

  1. 使用查询参数 response_type=code 和 access_type=offline 从 SPA 将用户重定向到 https://accounts.google.com/o/oauth2/v2/auth
  2. 将返回的代码发送到 API
  3. API 调用 https://oauth2.googleapis.com/token 获取 access_token 和 refresh_token
  4. 令牌保存在数据库中,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


    【解决方案1】:

    在 SPA 中,许多授权服务器和身份提供者不支持 CORS 请求,在这种情况下,您可以选择使用 Azure AD 隐式授权流而不是身份验证代码流,您可以直接通过/authorize 端点。此流程不提供刷新令牌,因此您的应用必须准备好定期刷新这些令牌。

    参考 - Microsoft identity platform and Implicit grant flow

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 2012-06-26
      • 2011-11-08
      • 2020-12-25
      相关资源
      最近更新 更多