2017-07-25 2 views
0

Ich habe ein sailsjs Backend für APIs und ich möchte Angular4 für mein Frontend verwenden. Ich habe mich gefragt, wie kann ich mit Sessions auf Angular umgehen? Ich habe versucht, die Dokumentation zu lesen und konnte mir nichts einfallen lassen.Angular4 Session Handling

Insbesondere muss ich in der Lage sein, die Anmeldung, Abmeldung, CSRF-Schutz, etc. zu handhaben. Ist es möglich, Angular4 in Sails zu verwenden, weil Sails all das eingebaut hat?

+0

Ja, es ist möglich, sehen Sie meine [Angular4-Segel] (https://github.com/rshangavel/Angular-sails) –

Antwort

1

Da Sie Segel mit Angular4 verwenden möchten, müssen Sie sails.io.js in Ihrer index.html als <script src="/assets/sails.io/sails.io.js"></script> hinzufügen und Ihre sails.io.js im Ordner assets/sails.io/behalten, dann SailsModule importieren und registrieren Segel-Modul in der in app.module.ts

imports:[SailsModule.forRoot()]

Sie müssen möglicherweise .Auch hinzufügen SailsService im Konstruktor und ngOnInit() aufrufen, die connect() -Methode von SailsService injizieren. Dann können Sie request(options):Observable Methode von SailsService verwenden, um die Anfrage zu erhalten (überprüfen Sie http://sailsjs.com/documentation/reference/web-sockets/socket-client/io-socket-request und überprüfen Sie http://sailsjs.com/documentation/concepts/sessions) mit Hilfe von req.session können Sie Sitzungswert und Eigenschaft erhalten.

0

Momentan arbeite ich an einer angular4-App, deren Backend-APIs in PHP geschrieben sind und ich schlage sie einfach von meinem eckigen Frontend und bekomme die Daten, jetzt um Session zu halten, benutze ich einfach SessionStorage und manchmal LocalStorage-Eigenschaften von Javascript, mit denen wir Schlüssel/Wert-Paare in einem Webbrowser speichern können.

Beispiel: sessionStorage.setItem ("Schlüsselname", "Wert"); // zu setzen

var myvar = sessionStorage.getItem ("Schlüsselname"); //

1

Ja, Sie können die Sitzung verwalten, indem Sie Sitzungsdetails über einen Sitzungsdienst speichern.

für Best Practice verwenden Google Firebase Auth-Funktion, die die gesamte Sitzung verwaltet, Login und Abmeldung.

einfach zu implementieren ... von Google kostenlos ... von Google gepflegt ....

0

Sie haben zwei Möglichkeiten 2. Winkel dieses

1. window.SessionStorage zu tun Service

1.In Ihrem Fall Sie sessionStroage verwenden können Also, wenn Benutzer angemeldet ist, stellen nur die Daten in sessionStroage wie diese

sessionStroage.setItem('userData', userObj); 

und beim Abmelden

sessionStroage.clear(); 

2. Zweite Option ist Ihre Daten in einem globalService setzt in-App-Daten So wird dieser Dienst enthält und sobald Benutzer abgemeldet, nur klar die Service-Daten. Wie folgt aus: -

@Injectable() 
export class GlobalService { 
login(){ 
    //initialize data here....... 
} 

logout(){ 
    //remove your data...... 
} 
} 

Hinweis: Wenn Browser-Tab diese Daten geschlossen ist verloren.Wenn Sie diese Daten wiederherstellen möchten, dann legen Sie sie in window.localStorage