【问题标题】:Best Flow for SPA [closed]SPA的最佳流程[关闭]
【发布时间】:2019-05-30 11:59:00
【问题描述】:

我应该使用当前支持的仅提供隐式流的库,还是从头开始编写自己的代码来处理代码流?

在对该主题进行了大量研究之后,我看到了关于在使用 OAuth2.0 (OIDC) 时使用哪种类型的流程的各种不同意见。虽然建议似乎正在发生变化,并且对新建议的支持不好像不在那里。我应该走哪条路?

  1. 没有客户端密码和 PKCE 的代码流似乎是当前的“推荐”。

  2. 隐式流似乎是过去的建议。

环顾四周,我发现很多编写的 Angular 库都主要只支持隐式流。

所以问题是使用现有的库和旧的推荐隐式流,还是编写我们自己的服务来处理新的 PKCE 无秘密代码流?

我的项目需要考虑的事项:

  1. 在我们的应用中,您首次登录后必须选择一个组织,然后根据该组织获取一个具有新范围的新令牌。
  2. 我们将有一个主启动器应用程序,它会根据您选择的应用程序打开 iFrames。每个启动的应用还必须获得新的令牌。
  3. Angular 经验有限,但我们愿意努力学习。
  4. 我们的最后期限非常紧迫。

【问题讨论】:

    标签: angular oauth-2.0 single-page-application openid-connect


    【解决方案1】:

    目前的建议是使用带有 PKCE 的授权代码流。当 OpenID Connect/OAuth 2.0 首次出现时,SPA 推荐使用隐式流。但由于安全问题,这种情况发生了变化。很快就会对这些规范进行修改以突出该建议。

    我建议使用AppAuth-JS 作为库。它通过 PKCE 提供授权代码流支持。它是一个官方的 Openid 基金会库。

    【讨论】:

    • 感谢您的回答...我目前正在尝试在 Angular 应用程序中使用该库。事实证明,由于缺乏文档,这很麻烦...您有经验吗是否有机会通过 Angular 使用 AppAuth?
    • @JoellyR 好吧,我想你必须依赖 AppAuth-JS 的 GitHub 文档。另外,看看他们的示例应用程序。虽然我不是来自 JS 背景
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多