2016-06-05 4 views
0

einen Benutzer zu markieren, die in meinen Spielen Web-Anwendung angemeldet hat speichere ich eine Flagge in der Sitzung, etwa so:Play for Scala: Traverse alle aktiven Sitzungen

Ok("Success").withSession("LoggedIn"-> "Yes") 

Nun, ich brauche die Anzahl der wissen Benutzer, die gerade angemeldet sind und deren Namen, ist dies möglich, ohne einen Cache zu verwenden?

Antwort

3

Nr. withSession legt einen Cookie im Browser des Clients mit den von Ihnen angegebenen Daten fest, speichert diese Datenserverseite jedoch nicht. Es gibt keine Möglichkeit festzustellen, wie viele aktive Cookies Sie verteilt haben, es sei denn, Sie fügen serverseitigen Code hinzu, um sie zu verfolgen.

Es gibt viele andere Fehler beim Speichern dieser Daten in einer einfachen Sitzung wie dieser. Zum Beispiel kann der Client den Cookie so manipulieren, dass er so aussieht, als wäre er eingeloggt. Es wäre besser, eine vorhandene und geprüfte Authentifizierungsbibliothek wie Play2-auth, SecureSocial usw. zu verwenden, statt Ihre eigenen zu rollen.

+0

Danke, ich habe mir die Bibliotheken angeschaut und sie scheinen keine kommerzielle Unterstützung zu haben (ich brauche das für mein Projekt). Gibt es keine einfache Technik, um die Sitzung zu markieren, wenn 'withSession' nicht empfohlen wird? – ps0604

+0

Ihr Produktmanager lehnt eine gemeinsame, gepflegte und "geprüfte" Community-geprüfte Bibliothek ab, weil er keine kommerzielle Unterstützung hat, während er die Risiken einer möglicherweise fehlerhaften Inhouse-Lösung akzeptiert, die ohne umfassende Community-Überprüfung entwickelt wurde, angetrieben von StackOverflow Q & A? Als Sicherheitskonzept ??? – Det

+0

@ ps0604 Die richtige Authentifizierung ist alles andere als einfach. –