IT이야기

adal.token이 올바르게 갱신되지 않음

cyworld 2022. 7. 25. 22:33
반응형

adal.token이 올바르게 갱신되지 않음

Vue.js SPA에서 일하고 있습니다.사이트는 하나의 호스트(web.xxxx.com)에서 실행되고 api는 다른 호스트(api.xxxx.com)에서 실행됩니다.API 콜은 보호되며 ADAL을 사용하여 로그인, 로그아웃 및 로그인한 사용자의 토큰을 API에 제공합니다.Vue에서는 다음과 같이 요격기를 설정합니다.getToken에 싸여 있다acquireToken약속을 반환하는 경우:

Vue.http.interceptors.push((request, next) => {
  // if this is a call to API, then set up auth
  Vue.http.options.xhr = {withCredentials: true};
  getToken()
    .then((token) => {
      request.headers.set('Authorization', `Bearer ${token}`);
      next();
    })
    .catch((err) => {
      throw new Error(err);
    });
});

이것은 예상대로 동작합니다.HTTP 요구가 개시될 때마다 대행 수신기가 추가 헤더를 설정하고, 그 헤더는 오프가 됩니다.

그러나 adal.js는 토큰을 업데이트하지 않습니다.1시간 후 로그인한 사용자가 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

앞으로도 잘 부탁드립니다.

편집... 로그 출력을 추가했습니다.

언급URL : https://stackoverflow.com/questions/43552389/adal-js-doesnt-refresh-token-properly

반응형