Javascript adal.js不';无法正确刷新令牌

Javascript adal.js不';无法正确刷新令牌,javascript,vue.js,vuejs2,adal,adal.js,Javascript,Vue.js,Vuejs2,Adal,Adal.js,我正在一家Vue.js水疗中心工作。该站点在一台主机web.xxxx.com上运行,而api在另一台主机api.xxxx.com上运行。API调用是安全的,我们使用ADAL登录、注销,并向API提供登录用户的令牌。在Vue中,我们设置了一个拦截器,如下所示(getToken是一个围绕acquireToken的包装器,它返回一个承诺): 这是意料之中的事;无论何时启动HTTP请求,拦截器都会设置额外的头并关闭它 但是,adal.js没有更新令牌。一小时后,我的登录用户不再登录,尽管与API交互。我

我正在一家Vue.js水疗中心工作。该站点在一台主机web.xxxx.com上运行,而api在另一台主机api.xxxx.com上运行。API调用是安全的,我们使用ADAL登录、注销,并向API提供登录用户的令牌。在Vue中,我们设置了一个拦截器,如下所示(
getToken
是一个围绕
acquireToken
的包装器,它返回一个承诺):

这是意料之中的事;无论何时启动HTTP请求,拦截器都会设置额外的头并关闭它

但是,adal.js没有更新令牌。一小时后,我的登录用户不再登录,尽管与API交互。我甚至试着运行这个,以确保令牌不会被刷新:

// ping every minute...
window.setInterval(() => {
  getToken().then((token) => { window.Logging.log('GOT IT!!!', token); });
}, 60 * 1000);
55分钟后,这些条目出现在客户端日志中。我编辑了任何可能敏感的内容,应该注意,这需要很长时间,因为我在调试器中手动单步执行所有调用:

Fri, 21 Apr 2017 22:11:32 GMT:1.0.14-VERBOSE: renewing idtoken
Fri, 21 Apr 2017 22:11:45 GMT:1.0.14-INFO: renewIdToken is called
Fri, 21 Apr 2017 22:12:08 GMT:1.0.14-INFO: Add adal frame to document:adalIdTokenFrame
Fri, 21 Apr 2017 22:13:26 GMT:1.0.14-VERBOSE: Renew Idtoken Expected state: <REDACTED>
Fri, 21 Apr 2017 22:13:36 GMT:1.0.14-INFO: Navigate url:https://login.microsoftonline.com/<REDACTED>&x-client-SKU=Js&x-client-Ver=1.0.14
Fri, 21 Apr 2017 22:14:06 GMT:1.0.14-VERBOSE: Navigate to:https://login.microsoftonline.com/<REDACTED>
Fri, 21 Apr 2017 22:14:14 GMT:1.0.14-VERBOSE: Set loading state to pending for: <REDACTED>
Fri, 21 Apr 2017 22:14:14 GMT:1.0.14-INFO: LoadFrame: adalIdTokenFrame
Fri, 21 Apr 2017 22:14:53 GMT:1.0.14-INFO: Add adal frame to document:adalIdTokenFrame
Fri, 21 Apr 2017 22:15:01 GMT:1.0.14-INFO: LoadFrame: adalIdTokenFrame
Fri, 21 Apr 2017 22:15:06 GMT:1.0.14-INFO: Add adal frame to document:adalIdTokenFrame
2017-04-21 18:15:07.866 vue.common.js:6183 You are running Vue in development mode.
Make sure to turn on production mode when deploying for production.
See more tips at https://vuejs.org/guide/deployment.html
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-VERBOSE: State: <REDACTED>
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-INFO: Returned from redirect url
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-INFO: State status:false; Request type:UNKNOWN
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-INFO: Error :login_required; Error description:AADSTS50058: A silent sign-in request was sent but no user is signed in. The cookies used to represent the user's session were not sent in the request to Azure AD. This can happen if the user is using Internet Explorer or Edge, and the web app sending the silent sign-in request is in different IE security zone than the Azure AD endpoint (login.microsoftonline.com).
Trace ID: <REDACTED>
Correlation ID: <REDACTED>
Timestamp: 2017-04-21 22:15:01Z
Fri,2017年4月21日22:11:32 GMT:1.0.14-VERBOSE:续订idtoken
2017年4月21日星期五22:11:45 GMT:1.0.14-INFO:RenewaidToken被调用
2017年4月21日星期五22:12:08 GMT:1.0.14-INFO:将adal框架添加到文档:ADALIDTOKENRAME
2017年4月21日星期五22:13:26 GMT:1.0.14-VERBOSE:续订Idtoken预期状态:
2017年4月21日星期五22:13:36 GMT:1.0.14-INFO:导航url:https://login.microsoftonline.com/&x-客户端SKU=Js&x-client-Ver=1.0.14
2017年4月21日星期五22:14:06 GMT:1.0.14-VERBOSE:导航至:https://login.microsoftonline.com/
2017年4月21日星期五22:14:14 GMT:1.0.14-VERBOSE:将加载状态设置为挂起:
2017年4月21日星期五22:14:14 GMT:1.0.14-INFO:LoadFrame:adalIdTokenFrame
2017年4月21日星期五22:14:53 GMT:1.0.14-INFO:将adal框架添加到文档:ADALIDTOKENRAME
2017年4月21日星期五22:15:01 GMT:1.0.14-INFO:LoadFrame:adalIdTokenFrame
2017年4月21日星期五22:15:06 GMT:1.0.14-INFO:将adal框架添加到文档:ADALIDTOKENRAME
2017-04-21 18:15:07.866 vue.common.js:6183您正在开发模式下运行vue。
在部署用于生产时,请确保启用生产模式。
查看更多提示,请访问https://vuejs.org/guide/deployment.html
2017年4月21日星期五22:15:10格林尼治标准时间:1.0.14-VERBOSE:州:
2017年4月21日星期五22:15:10 GMT:1.0.14-INFO:从重定向url返回
2017年4月21日星期五22:15:10 GMT:1.0.14-INFO:状态:错误;请求类型:未知
2017年4月21日星期五22:15:10 GMT:1.0.14-INFO:错误:需要登录;错误描述:AADSTS50058:发送了静默登录请求,但没有用户登录。用于表示用户会话的Cookie未在Azure AD请求中发送。如果用户正在使用Internet Explorer或Edge,并且发送静默登录请求的web应用与Azure AD端点(login.microsoftonline.com)位于不同的IE安全区域,则会发生这种情况。
跟踪ID:
相关ID:
时间戳:2017-04-2122:15:01Z
非常感谢您在这方面的持续帮助,非常感谢


编辑。。。添加了日志输出。

adal似乎尝试续订令牌,但由于AAD身份验证cookie已过期或不存在,因此失败。您可以使用acquireTokenFailure事件捕获“login_required”错误,并将用户重定向到login pageYeah,但这并不能解决用户将在一小时的会话后注销的问题。如果他们与应用程序交互,我不希望他们在一小时后注销,那么我如何保持他们的令牌刷新?如果会话已结束(用户已注销),那么我们将无法在没有用户交互的情况下进一步扩展会话。如果我每分钟调用一次
acquireToken
,为什么会话会结束?在某个时刻,
acquireToken
尝试续订令牌,但由于某些原因无法成功完成此操作。请参阅上面的
窗口。设置间隔
代码。。。
Fri, 21 Apr 2017 22:11:32 GMT:1.0.14-VERBOSE: renewing idtoken
Fri, 21 Apr 2017 22:11:45 GMT:1.0.14-INFO: renewIdToken is called
Fri, 21 Apr 2017 22:12:08 GMT:1.0.14-INFO: Add adal frame to document:adalIdTokenFrame
Fri, 21 Apr 2017 22:13:26 GMT:1.0.14-VERBOSE: Renew Idtoken Expected state: <REDACTED>
Fri, 21 Apr 2017 22:13:36 GMT:1.0.14-INFO: Navigate url:https://login.microsoftonline.com/<REDACTED>&x-client-SKU=Js&x-client-Ver=1.0.14
Fri, 21 Apr 2017 22:14:06 GMT:1.0.14-VERBOSE: Navigate to:https://login.microsoftonline.com/<REDACTED>
Fri, 21 Apr 2017 22:14:14 GMT:1.0.14-VERBOSE: Set loading state to pending for: <REDACTED>
Fri, 21 Apr 2017 22:14:14 GMT:1.0.14-INFO: LoadFrame: adalIdTokenFrame
Fri, 21 Apr 2017 22:14:53 GMT:1.0.14-INFO: Add adal frame to document:adalIdTokenFrame
Fri, 21 Apr 2017 22:15:01 GMT:1.0.14-INFO: LoadFrame: adalIdTokenFrame
Fri, 21 Apr 2017 22:15:06 GMT:1.0.14-INFO: Add adal frame to document:adalIdTokenFrame
2017-04-21 18:15:07.866 vue.common.js:6183 You are running Vue in development mode.
Make sure to turn on production mode when deploying for production.
See more tips at https://vuejs.org/guide/deployment.html
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-VERBOSE: State: <REDACTED>
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-INFO: Returned from redirect url
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-INFO: State status:false; Request type:UNKNOWN
Fri, 21 Apr 2017 22:15:10 GMT:1.0.14-INFO: Error :login_required; Error description:AADSTS50058: A silent sign-in request was sent but no user is signed in. The cookies used to represent the user's session were not sent in the request to Azure AD. This can happen if the user is using Internet Explorer or Edge, and the web app sending the silent sign-in request is in different IE security zone than the Azure AD endpoint (login.microsoftonline.com).
Trace ID: <REDACTED>
Correlation ID: <REDACTED>
Timestamp: 2017-04-21 22:15:01Z