Eine Möglichkeit, dies zu betrachten, besteht darin, das Risiko oder den Schaden zu berücksichtigen.
Erstellen Sie eine App ohne Benutzer, POC / MVP? Sind Sie ein Startup, das Ihre App schnell auf den Markt bringen und testen muss? Wenn ja, würde ich wahrscheinlich nur die einfachste Lösung implementieren und mich weiterhin darauf konzentrieren, eine marktgerechte Lösung zu finden. Verwenden Sie localStorage, da es häufig einfacher zu implementieren ist.
Erstellen Sie eine Version 2 einer App mit vielen täglich aktiven Benutzern oder eine App, von der Personen / Unternehmen stark abhängig sind? Würde es wenig oder gar keinen Raum für Erholung bedeuten, gehackt zu werden? In diesem Fall würde ich mich eingehend mit Ihren Abhängigkeiten befassen und in Betracht ziehen, Token-Informationen in einem Nur-http-Cookie zu speichern.
Die Verwendung von localStorage und Cookie- / Sitzungsspeicher hat ihre eigenen Vor- und Nachteile.
Wie in der ersten Antwort angegeben: Wenn Ihre Anwendung eine XSS-Sicherheitsanfälligkeit aufweist, schützt keiner Ihrer Benutzer. Da die meisten modernen Anwendungen ein Dutzend oder mehr verschiedene Abhängigkeiten aufweisen, wird es immer schwieriger, sicherzustellen, dass eine der Abhängigkeiten Ihrer Anwendung nicht XSS-anfällig ist.
Wenn Ihre Anwendung eine XSS-Sicherheitsanfälligkeit aufweist und ein Hacker diese ausnutzen konnte, kann der Hacker Aktionen für Ihren Benutzer ausführen. Der Hacker kann GET / POST-Anforderungen ausführen, indem er ein Token aus localStorage abruft, oder POST-Anforderungen ausführen, wenn das Token in einem Nur-http-Cookie gespeichert ist.
Der einzige Nachteil beim Speichern Ihres Tokens im lokalen Speicher ist, dass der Hacker Ihr Token lesen kann.