2016-08-05 10 views
0

Ich entwickle eine Anwendung auf AngularJS basiert und die Interaktion mit einem RESTful-Service. Nach der Authentifizierung vom Dienst, der ein Token zurückgibt. Ich muss Token speichern und in jeder Anfrage abfangen. Ich möchte wissen, welches Token besser wäre, entweder rootScope oder sessionStorage?Welches wäre sicher zu speichern Authentifizierungstoken, rootScope oder SessionStorage in AngularJS

+0

Ich glaube nicht, dass einer von ihnen sicherer ist als der andere. Sie können in der JS-Konsole das rootscope drucken und Sie können in Ihrer Sitzung das gesamte gespeicherte Material sehen. Aber ich schlage sessionStorage vor, um das Token zu speichern, da das Token beim Aktualisieren verloren geht. Dieser Typ zeigt, wie ein Token in localStorage gespeichert wird: https://thinkster.io/angularjs-jwt-auth – McBoman

+0

Der Speicher ist besser, da das Token nicht mehr existiert, wenn die App aktualisiert wird. Es gibt auch Cookies. – Rob

Antwort

0

Die $ rootScope ist eine Variable, die auf Aktualisierung der Seite verschwunden sein. Daher würde ich vorschlagen, dass Sie entweder einen Cookie oder SessionStorage verwenden.

SessionStorage wird nicht mehr angezeigt, wenn der Benutzer die Registerkarte "Browser" schließt. Wenn das nicht der bevorzugte Fall ist, dann benutze einen Cookie.

Um einen Standardkopf Authentifikator Ihre $ HTTP-Anfragen hinzufügen verwenden, um einen Abfangjäger, die Sie Dokumentation über finden Sie hier:

Interceptor documentation

Der Code für die Abfangjäger etwas aussehen würde:

$httpProvider.interceptors.push(function($q, $cookies) { 
    return { 
    'request': function(config) { 

      config.headers['Token'] = $cookies.loginTokenCookie; 
      return config; 
     } 
    }; 
    }); 

Schauen Sie sich auch die Dokumentation zum eckigen $ cookie Service hier an:

Cookie documentation

0

$ rootScope und Sitzungsspeicher sind für zwei verschiedene Rollen ausgelegt. $ rootScope ist einfach eine JavaScript-Variable, die Werte anwendungsweit zugänglich macht. Sitzungsspeicher ist eine Webbrowser-Funktion, mit der Sie Daten über Seitenaktualisierungen hinaus beibehalten können oder während die Sitzung anderweitig verwaltet wird. Das Speichern von Werten in $ rootScope ist nichts anderes als das Speichern eines Werts in einer JavaScript-Variablen. Wenn Sie die Seite aktualisieren, ist der Wert verschwunden. Was Sie möchten, ist entweder Sitzungsspeicher oder ein Cookie, sodass Ihr Token über die Seitenaktualisierungen hinaus erhalten bleibt.

Werfen Sie einen Blick auf ngStorage