2017-01-13 1 views
1

Ich verwende die ServiceStack-Authentifizierung zur Authentifizierung und verwende dazu http. Dies könnte ein Duplikat für meinen vorherigen Post sein, aber das ist eine andere Frage. Wenn ich eine Postanforderungsauthentifizierung/-abmeldung sende, hat der Anforderungsheader keine Sitzungs-ID, die den Benutzer auf der anderen Website nicht abmeldet.Servicestack-Anfrage-Header enthält kein Cookie

Wie kann ich eine Anfrage nach dem Abmelden senden, um den Benutzer von der gesamten Website, in der er/sie angemeldet ist, abzumelden?

Antwort

1

Wie kann ich eine Anfrage nach dem Abmelden senden, die den Benutzer von der gesamten Website protokolliert, in der er eingeloggt ist?

Damit ein Benutzer in angemeldet seine sie brauchen ServiceStack des ss-id/ss-pidSession Cookies zu schicken. Wenn die HTTP-Anfrage die Sitzungscookies nicht enthält, wird sie als anonyme Anfrage behandelt, und das Senden einer Abmeldeanforderung hat keine Auswirkungen. Aber in den meisten Fällen würden Sie einfach den gleichen HTTP-Client verwenden, der verwendet wird, um den Benutzer zu authentifizieren, um sie auszuloggen, da sie automatisch auch ihre authentifizierten Sitzungscookies mit jeder Anfrage senden würden.

Andere Möglichkeiten können Sie ServiceStack Session Ids senden ist send Session Ids as HTTP Headers mit dem X- Präfix, zB:

X-ss-id: {sessionId} 
X-ss-pid: {permSessionId} 
X-ss-opts: ... 

Oder wenn Sie aktivieren die AllowSessionIdsInHttpParams Option in Ihrem AppHost, zB:

SetConfig(new HostConfig { 
    AllowSessionIdsInHttpParams = true, 
}); 

Sie kann auch die Sitzungs-IDs über QueryString senden, z. B .:

/auth/logout?ss-id=...&ss-pid=...&ss-opts=... 
+0

Danke, das Problem war, dass angularJS nicht mitCredential = true als Standard hatte. –

Verwandte Themen