我正在寻找有关如何使用Angular 2和Identity Server 4最好地处理令牌过期的建议.我正在使用Identity Server 4的隐式流程,它不会发出刷新令牌,我不想重定向令牌过期后的用户.
另外,为什么没有刷新令牌?为什么混合流不适用于javascript客户端?我控制ID服务器,应用程序和api所以这会工作吗?
解决方法
我可以推荐用于管理javascript应用程序令牌的库:
https://github.com/IdentityModel/oidc-client-js
https://github.com/IdentityModel/oidc-client-js
您已正确使用SPA的隐式流程 – 以下是关于哪个流程正确的描述 – https://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/
Oidc-client提供了名为automaticSilentRenew-check the docs的强大功能.后台有计时器,在令牌过期前处理事件,并使用隐藏的iframe获取新的访问令牌.
Angular2和oidc-client的示例:
https://github.com/jmurphzyo/Angular2OidcClient
使用IdentityServer – https://vimeo.com/131636653在JavaScript Web应用程序中进行身份验证和授权概述的视频