여기에 몇 가지 배경이 있습니다. 암시 적 플로우를 사용하고 있으며 내 토큰은 JWT입니다. 로그 아웃하려면 signoutRedirectCallback 메서드 호출을 사용하고 있습니다.IdentityServer3를 사용하는 Oidc-Client - Angular2, 로그 아웃하고 올바르게 로그인하는 방법
제대로 로그 아웃하고 싶습니다. 그래서 다른 사용자로 로그인 할 수 있습니다. 그렇게 할 때 마지막 사용자의 토큰이 여전히 있습니까? 최종 사용자의 토큰이 없도록 사용자를 완전히 로그 아웃하는 방법이 있습니까? 토큰은 어떤 이유로 든 계속 남아 있습니다. 진정으로 로그 아웃하는 유일한 방법은 브라우저 페이지가 닫히고 identityserver3의 쿠키가 제거/삭제되는 것입니다.
다른 답변도 있습니다. 사용자가 주 그리드 페이지에서 하이퍼 링크를 클릭하고 새 탭 (예 : 세부 정보 페이지)을 열면 사용자가 새 탭 (세부 정보 페이지)에서 로그 아웃하면 기본 그리드 페이지 (이전 탭)가 계속 기록됩니다 에서? 다시 말하지만, 완전히 로그 아웃되지 않은 것과 동일한 문제입니다.
누구든지 identityserver3에서 쿠키를 제거하기 위해 제대로 로그 아웃하는 방법에 대한 지침을 제공 할 수 있습니까? 그래서 그것은 깨끗한 슬레이트입니다. 토큰은 계속 유지됩니다. 고맙습니다.
//Here is the code. In my main component I have a menuclick event and this works:
public MenuClick(event, item)
{
if (item === "signOut")
{
this.signOut();
}
}
public signOut()
{
this._LoginService.logOut();
}
//Here is the LoginService that calls the oidc-client method:
public logOutCall(): Observable<boolean>
{
return Observable.fromPromise(new Promise<boolean> (
resolve =>
{
this._oidcService.logOut();
resolve(true);
}
));
}
this._oidcService.logOut()가 실제 OIDC 클라이언트 방식 signoutRedirectCallback()를 호출한다. 이 작동하고 리디렉션합니다. 그러나 페이지를 닫지 않으면 토큰이 계속 유지됩니다.
업데이트 : 내 테스트 팀에서 특별히 Chrome과 관련된 문제라고 말했습니다.
당신이 제대로하지 않았기 때문에 소스 코드를 조사하지 않고 어떤 제안도 할 수 없습니다. –
Roman, 기본적으로 위에서 언급 한 방법을 호출 한 다음 로그인 페이지로 리디렉션합니다. :/ – LVDev
리디렉션을 수행하기 전에 세션을 무효화하십시오. –