Es war ein langer Weg, aber ich habe SignalR arbeiten mit meiner Web-API, die OWIN für Token-Authentifizierung verwendet.Killing "Sitzung" mit SignalR, OWIN und Web API
Ich habe einen Mechanismus, wo, wenn ein Benutzer auf Terminal # 1 authentifiziert und später auf Terminal # 2 authentifiziert, kann ich ihnen eine Javascript-Warnung sagen "Hey, nur eine Sitzung zu einer Zeit. Welche wollen Sie Ausloggen?"
Die Frage, die ich habe, ist, wie man ihre "Sitzung" auf einem der Terminals zu töten? Ich sage "Sitzung", aber da dies eine REST-basierte API ist, gibt es wirklich keine Sitzung. Wenn ich sie dazu zwingen könnte, sich erneut am Terminal zu authentifizieren, würde es ausreichen, wenn sie sich ausloggen.
Ich habe das SignalR connectionId
von jedem Client. Gibt es eine Möglichkeit, wie ich ihr Authentifizierungs-Token ablaufen lassen und eine Abmeldung erzwingen kann?
Hinweis - Der Client ist von der Web-API insofern getrennt, als er auf zwei verschiedenen Servern gehostet wird. Der Client ist nur HTML/Javascript, das Aufrufe an die Web-API aufruft.
Da das Token in der Kopfzeile für jede Anfrage an die API übergeben wird, gibt es eine Möglichkeit, es aus der Kopfzeile zu löschen? – webworm
Was meinst du, wenn du * aus dem Header * sagst? Aus den Clientanfragen protokollieren? –
Wenn ich Postman zum Testen der API verwende, authentifiziere ich mich zuerst mit der API und erhalte ein Token, das in der Kopfzeile übergeben wird. Wenn dieses Token gelöscht oder geändert wird, müsste sich der Webclient erneut authentifizieren, um ein gültiges Token zu erhalten. Wenn ich Header sage, dann meine ich den HTTP-Header, der beim Aufruf einer API-Methode übergeben wird. – webworm