gpt4 book ai didi

oauth-2.0 - 使用 OAuth2 隐式流程(IdentityServer4),用户是否必须在每次访问 token 到期时重新输入密码?

转载 作者:行者123 更新时间:2023-12-04 18:24:22 26 4
gpt4 key购买 nike

我需要为 Angular2 客户端 WebApp 实现授权/身份验证以与资源服务器(WebApi)通信。

我正在调查 IdentiyServer4 并选择授权类型/流程。 HERE

  • Resource Owner Password Credentials Grant(我们现在使用的)“这就是所谓的“非交互式”身份验证,通常不推荐使用。
  • 授权代码和混合 <- 不允许刷新 token 的隐式流的解决方案。(对我来说似乎相当复杂。但这是要走的路吗?)
  • 隐式流程 - 推荐用于我所看到的任何地方的 SPA。但不支持刷新 token ..

  • 使用隐式流,我如何不要求 SPA 的用户每隔 3600 秒就必须输入密码?推荐的 access_token 生命周期。我想我对获取新的授权 URL 有一些不明白的地方。

    我看过的资源。
  • IdentityServer4 Grant Types
  • Implicit Grant Flow for Client-Side Apps
  • A Guide To OAuth 2.0 Grants
  • SO - Oauth2 Implicit Flow with single-page-app refreshing access tokens

  • 感谢斯科特的回答。我有一些阅读要做。
  • Getting Started with IdentityServer4
  • 最佳答案

    使用隐式流程时,您仍然可以使用自己的 cookie 生存期(即超过 3600 秒)。为了避免访问 token 过期,您可以使用用户仍然在 IdentityServer 中进行身份验证的事实来获取另一个访问 token ,而无需刷新 token 。

    IdentityModel OpenID Connect JS Client通过在访问 token 到期之前触发事件并使用 iframe 向 IdentityServer 发出新的身份验证请求来完成此操作。如果用户仍然登录到 IdentityServer(与您自己的客户端应用程序相比,它具有不同的、通常生命周期更长的 cookie),那么 IdentityServer 会像正常的身份验证请求一样发送回新 token 。这发生在后台,没有来自用户的交互,也没有中断。

    查看 automaticSilentRenew此库中用于实现细节的功能。

    顺便说一下,在 IdentityServer 的情况下,隐式、授权代码和混合授权类型是 OpenID Connect 授权类型。引用 OAuth 版本的资源可能不适用于您的用例。

    关于oauth-2.0 - 使用 OAuth2 隐式流程(IdentityServer4),用户是否必须在每次访问 token 到期时重新输入密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42009710/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com