非路由更改时,JavaScript ADAL续订令牌?

时间:2015-12-09 21:57:12

标签: angularjs adal adal.js

我们已经完成了http://www.cloudidentity.com/blog/2014/10/28/adal-javascript-and-angularjs-deep-dive/并在我们的SPA上设置了Azure,它使用AngularJS作为前端,WebAPI作为后端。

我们完美地验证,一切顺利进行。但是,一小时后,令牌会按预期到期,并且在路线更改之前不会刷新。这意味着我们系统中的用户坐在页面上然后对服务器进行GET将使他们的身份验证失败,导致他们丢失屏幕上的数据,因为我们调用_adal.login()来再次获取令牌。 / p>

我的问题是:当我们的索引包装器检测到令牌即将到期时,我们如何自动续订令牌,或者我们如何设置ADAL以打开iFrame并在HTTP请求上更新令牌?

我似乎发现的所有内容都只表明我们让路由更改处理重新身份验证,但不幸的是,这会给我们的用户带来问题。

1 个答案:

答案 0 :(得分:2)

您不需要更改路线以获得续订令牌。每当拦截器检测到对后端(或其中一个注册端点)的调用时,它都会尝试从缓存中检索相应的令牌,如果令牌在到期(或不存在)后5分钟内,则ADAL会自动使用隐藏的iframe更新它。您不应该显式调用login。此外,Azure AD的会话cookie是执行静默令牌续订所需的工件 - 持续时间超过1小时。我想知道出了什么问题。如果您在http://www.cloudidentity.com/blog/contact/与我联系并提供更多详细信息,我很乐意进一步研究。