我需要为Angular2客户端WebApp实现授权/身份验证,以便与资源服务器(WebApi)进行通信。
我正在研究IdentiyServer4并选择授权类型/流程。 HERE
使用隐式流程,如何不要求SPA的用户每隔3600秒输入一次密码?推荐的access_token生命周期。我认为有一些关于获取新授权URL的内容我不明白。
我看过的资源。
感谢Scott的回答。我有一些阅读要做。
答案 0 :(得分:3)
使用隐式流时,您仍然可以使用自己的cookie生命周期(即超过3600秒)。要绕过访问令牌过期,您可以使用IdentityServer中仍然验证用户的事实来获取另一个访问令牌,而无需刷新令牌。
IdentityModel OpenID Connect JS Client通过在访问令牌到期之前触发事件并使用iframe向IdentityServer发出新的身份验证请求来执行此操作。如果用户仍然登录到IdentityServer(其拥有与您自己的客户端应用程序不同的,通常更长的cookie),则IdentityServer会像正常的身份验证请求一样发回新的令牌。这种情况发生在后台,没有来自用户的交互,也没有中断。
查看此库中的automaticSilentRenew
功能以了解实施细节。
顺便说一下,在IdentityServer的情况下,隐式授权代码和混合授权类型是OpenID Connect授权类型。引用OAuth版本的资源可能不适用于您的用例。