繁体   English   中英

需要有关 Microsoft OAuth2 流程的信息

[英]Need info with the Microsoft OAuth2 flow

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

我已经使用授权代码流在 google 上取得了成功:

  1. 从 SPA 使用查询参数 response_type=code 和 access_type=offline 将用户重定向到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 吗?

非常感谢,对不起我的英语!

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

参考 - Microsoft 标识平台和隐式授权流程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM