身份服务器 4 和 Angular 应用程序进行身份验证以实现永远持久的会话
Identity server 4 and Angular app authenticate to achieve forever lasting session
当前结构:
我有 angular 应用程序作为客户端,API 作为数据源和身份服务器作为身份源。在 angular 中,我根据身份服务器对用户进行身份验证,并使用返回的令牌授权用户针对 API。我应该使用哪种授权类型来根据身份服务器验证我的 angular 应用程序用户?
根据 http://docs.identityserver.io/en/release/topics/grant_types.html,我应该使用隐式授权类型。
问题是隐式授权类型没有刷新令牌。所以我的问题是,我应该如何让我的用户会话在 angular 应用程序(访问令牌有效)中保持活动状态? - 每次访问令牌过期后不要求用户进行身份验证。
我的目标是让会话一直存在(令牌有效),直到它被用户杀死(注销)
是的,我会使用隐式流程。如果您的身份验证提供程序支持会话,您可以使用 OpenID Connect 获取新令牌而无需用户交互。在令牌过期之前,使用 prompt=none
URL 参数在隐藏的 iframe 中创建身份验证请求(/auth
端点)(根据 [=13] id_token_hint=...
参数也应该存在=]).如果用户会话打开,您将获得新令牌,否则返回错误(需要用户交互)。
OpenID Connect Session Management RFC 描述了这个过程以及更多(单点登录)。
当前结构: 我有 angular 应用程序作为客户端,API 作为数据源和身份服务器作为身份源。在 angular 中,我根据身份服务器对用户进行身份验证,并使用返回的令牌授权用户针对 API。我应该使用哪种授权类型来根据身份服务器验证我的 angular 应用程序用户? 根据 http://docs.identityserver.io/en/release/topics/grant_types.html,我应该使用隐式授权类型。
问题是隐式授权类型没有刷新令牌。所以我的问题是,我应该如何让我的用户会话在 angular 应用程序(访问令牌有效)中保持活动状态? - 每次访问令牌过期后不要求用户进行身份验证。
我的目标是让会话一直存在(令牌有效),直到它被用户杀死(注销)
是的,我会使用隐式流程。如果您的身份验证提供程序支持会话,您可以使用 OpenID Connect 获取新令牌而无需用户交互。在令牌过期之前,使用 prompt=none
URL 参数在隐藏的 iframe 中创建身份验证请求(/auth
端点)(根据 [=13] id_token_hint=...
参数也应该存在=]).如果用户会话打开,您将获得新令牌,否则返回错误(需要用户交互)。
OpenID Connect Session Management RFC 描述了这个过程以及更多(单点登录)。