0

I @EnableOauth2Sso eine ähnliche Architektur folgende bin mit abzumelden wie die in Spring beschrieben oauth2 tutorial: ein Auth-Server, einem zuul Proxy, der die sso ermöglicht, eine getrennte UI Anwendung usw.Frühling OAuth2 SSO - kann nicht aus dem Auth-Server

Das Problem ist, dass, wenn die UI abmeldet gegen den Ressourcenserver löscht es erfolgreich den Ressourcenserver JSESSIONID, dann wird der Benutzer auf eine Homepage umgeleitet. Wenn der Benutzer sich erneut anmelden möchte, wird er auf den Authentifizierungsserver umgeleitet, aber anstatt nach dem Benutzer + Kennwort zu fragen, ist er der Meinung, dass er immer noch angemeldet ist. Der Authentifizierungsserver JSESSIONID ist immer noch vorhanden und wurde vom vorherigen Ressourcenserver-Lougout nicht beeinflusst.

Wie kann ich mich auch vom Authentifizierungsserver abmelden?

Antwort

0

Da es nicht aus der Box Frühling OAuth2 Einzel Logout wir um dies hatte zu arbeiten, ist die Schaffung eines/Endpunkt widerrufen, die den Authentifizierungsserver ruft davon abzumelden:

UI:

$http({ 
     method: 'POST', 
     url: API + '/logout' 
    }).then(function() { 
     $http({ 
      method: 'GET', 
      url: API + '/auth/oauth/session/revoke' 
     }).then(function() { 
      window.location = '/'; 
     }); 
    }); 

Zuul Server:

zuul: 
    ... 
    routes: 
     authServer: 
     path: /auth/** 
     url: ${authServer.url}/auth/ 
     ... 

A Server:

@RestController 
public class RevokeController { 

    @RequestMapping(value = "/oauth/session/revoke", method = RequestMethod.GET) 
    public void revoke(HttpServletRequest request) throws InvalidClientException { 
     request.getSession().invalidate(); 
    } 
} 
0

Dies ist korrekt das Verhalten, wenn Sie Angular App abmelden, wird es nicht vom Auth-Server abmelden.

Beispiel: - Angenommen, wir möchten stackoverflow.com mit google oder facebook account verwenden, müssen wir das Passwort nicht erneut eingeben, wir sind beim Auth-Service angemeldet.

Wenn wir die SSO-Anmeldung immer wieder anzeigen müssen, müssen wir Angular UI und OAuth Server abmelden.

Verwandte Themen