Wie verarbeiten die User-Sitzung im Winkel 5
Für das backend, ich bin mit Spring Framework mit 'Shiro' für die Authentifizierung,
Und für das frontend, ich bin mit Winkel-5.
Wenn ich rufe ich meine login-API vom Briefträger, als ich bin, immer dieselbe Benutzer-session, bis ich verwenden logout-API. (Was richtig ist)
Postbote UI Bild:
Aber wenn ich rufe ich meine login-API aus meinem Winkel 5, als ich bin, immer verschiedene Benutzer-session auf jeden Anruf. (Was aber falsch ist.)
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class LoginService {
private headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'});
private _url:string = "v1/login";
constructor(private http: HttpClient) { }
login(){
const data = {userName:"root", password:"root"};
return this.http.post(this._url,{headers: this.headers},{params : data})
.subscribe(data => {sessionStorage.setItem("jsessionid",JSON.parse(JSON.stringify(data)).jsessionid)});
}
}
Angular-UI-Bild:
Bei jedem Aufruf von 'jsessionid' ändert, wie gezeigt in "
Versenden Sie die alten
erhalten wir, dass 'jsessionid' von Shiro, also, wenn wir rufen login API von derselben Benutzer-session dann werden wir gleich 'jsessionid' . Wenn ich hier rufe ich meine login-API von Winkel-Zeit, dass bei jedem Aufruf neue Sitzung erstellen. Also jedes mal, wenn 'jsessionid' verändert.
Die
ja. Aber ich weiß nicht, wie zu senden, dass
Ich weiß nicht Shiro, aber in der Regel erfolgt dies in Form eines cookie.
jsessionid
Wert wieder auf aufeinander folgende Aufrufe?erhalten wir, dass 'jsessionid' von Shiro, also, wenn wir rufen login API von derselben Benutzer-session dann werden wir gleich 'jsessionid' . Wenn ich hier rufe ich meine login-API von Winkel-Zeit, dass bei jedem Aufruf neue Sitzung erstellen. Also jedes mal, wenn 'jsessionid' verändert.
Die
jsessionid
Wert wird verwendet, um die Sitzung zu identifizieren der server-Seite. Die client müssen es zurück zu senden mit jedem Anruf oder eine neue session erstellt werden.ja. Aber ich weiß nicht, wie zu senden, dass
jsessionid
bei jedem Aufruf von der client-Seite (Von Winkel-5 ).Ich weiß nicht Shiro, aber in der Regel erfolgt dies in Form eines cookie.
InformationsquelleAutor Vinu | 2018-02-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie prüfen, "jsessionid" in der session Speicher vor dem senden auth reques.
Werden Sie brauchen, um zu erstellen auth interceptor https://medium.com/@ryanchenkie_40935/angular-authentication-using-the-http-client-and-http-interceptors-2f9d1540eb8
InformationsquelleAutor Kliment Ru
Session-management automatisch passieren.
Wenn wir den client auf einen server und backend auf einem anderen server zu dieser Zeit müssen wir nur noch 'proxy.conf.json' - Datei.
Und hinzufügen müssen, dass die Datei Eintrag in ' - Paket.json' - Datei.
In meinem Fall, ich war mit einem zusätzlichen parameter
/mainlayer
im server-URL. (Die war falsch.)Und in
LoginService
Klasse nur hinzufügen, dass zusätzliche parameter.InformationsquelleAutor Vinu