JWT C#令牌-如何处理或设置无限的到期时间

时间:2019-08-14 13:36:23

标签: jwt token microservices jwt-auth angular2-jwt

当我计划使用OAuth或OWIN JWT Bearer令牌进行身份验证时,我有以下要求,对此我不知道建议的解决方案或授权类型。我将欣赏一个小的示例代码,尤其是有效载荷的外观和声明的外观以及以下我应具有的Grant类型:

  1. 我有一个角度8用户界面,要求输入用户名/密码(Azure AD已验证)
  2. 用户登录,然后应该具有将URL复制(粘贴)到另一个选项卡或新浏览器的功能。
  3. 用户在工作时(它是呼叫中心的案例管理员,因此长时间使用会话),因此令牌在工作期间不会过期。我研究了令牌将在我们设置的时间到期,并且无法控制它。现在,除非我们拥有“刷新”令牌,否则我们将无法实现这一目标,即,即使令牌已过期(因为应使用刷新令牌),用户也应具有无缝的经验来继续执行任务。

如果我使用刷新令牌,则只有用户ID /密码不安全的情况下,才可以使用授权码授予类型。如果我选择“隐式”授予类型,则此中没有刷新令牌。

我不确定如何实现上述所有要点。请指导

1 个答案:

答案 0 :(得分:0)

在隐式授予流的情况下,SPA必须在隐藏的iframe中发送请求以刷新令牌。基于有效的浏览器会话,应用程序请求刷新令牌访问。

对于Azure AD,您应该使用microsoft-authentication-library-for-js,并且此库使用 acquireTokenSilent 方法开箱即用地提供此功能。

我强烈建议您仔细阅读隐式授权流程文档,您将获得很好的理解。 Implicit Grant Flow

我不确定您可以找到完整的示例,但是我可以给您几个与代码示例的链接,而所有这些都将构成完整的示例。而且我看不到任何Angular 8库,给定的库适用于Angular 6,7,但可能也可以用于Angular 8。

对于Angular,您可能必须使用此库microsoft-adal-angularExample How to use microsoft-adal-angular

在给定的链接中,您可以找到如何刷新令牌的方法,因为上面的示例缺少该部分。 Refresh Token Code