Oauth 2.0 使用OAuth2隐式流(IdentityServer4),用户是否必须在每次访问令牌过期时重新输入密码?

Oauth 2.0 使用OAuth2隐式流(IdentityServer4),用户是否必须在每次访问令牌过期时重新输入密码?,oauth-2.0,openid-connect,identityserver4,Oauth 2.0,Openid Connect,Identityserver4,我需要为Angular2客户端WebApp实现授权/身份验证,以便与资源服务器(WebApi)通信 我正在调查IdentiyServer4并选择赠款类型/流量 资源所有者密码凭据授予(我们现在使用的。)“这就是所谓的“非交互式”身份验证,通常不建议使用” 授权代码&Hybrid使用隐式流时,您仍然可以使用自己的cookie生存期(即超过3600秒)。要绕过即将过期的访问令牌,您可以使用用户仍然在IdentityServer中经过身份验证的事实来获取另一个访问令牌,而无需刷新令牌 通过在访问令牌到

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

我正在调查IdentiyServer4并选择赠款类型/流量

  • 资源所有者密码凭据授予(我们现在使用的。)“这就是所谓的“非交互式”身份验证,通常不建议使用”

  • 授权代码&Hybrid使用隐式流时,您仍然可以使用自己的cookie生存期(即超过3600秒)。要绕过即将过期的访问令牌,您可以使用用户仍然在IdentityServer中经过身份验证的事实来获取另一个访问令牌,而无需刷新令牌


    通过在访问令牌到期之前触发一个事件并使用iframe向IdentityServer发出新的身份验证请求来实现这一点。如果用户仍然登录到IdentityServer(它与您自己的客户端应用程序具有不同的、通常寿命更长的cookie),则IdentityServer会像正常的身份验证请求一样发回新的令牌。这在后台发生,用户没有交互,也没有中断

    查看此库中的
    automaticSilentRenew
    功能以了解实现细节


    顺便说一下,对于IdentityServer,隐式、授权代码和混合授权类型都是OpenID连接授权类型。参考OAuth版本的资源可能不适用于您的用例。

    “这发生在后台,没有用户交互,也没有中断。”您确定没有重定向,因此没有中断吗?是的。它发生在iframe中,而不是主窗口。