Heim  >  Artikel  >  Web-Frontend  >  Beispiel für die gemeinsame Nutzung von AngularJs-Cookies

Beispiel für die gemeinsame Nutzung von AngularJs-Cookies

小云云
小云云Original
2018-03-08 15:26:121643Durchsuche

Cookie kann als clientseitige Technologie bezeichnet werden. Das Programm schreibt einige Benutzerinformationen in Form eines Cookies in den jeweiligen Browser. Vereinfacht ausgedrückt handelt es sich dabei um die Daten, die von der Website auf dem Computer des Nutzers gespeichert werden, um die Identität des Nutzers zu ermitteln. Die Warenkorbfunktion und die automatische Forum-Anmeldefunktion vieler Shopping-Websites werden durch Cookies realisiert.

Das Betreiben von Cookies umfasst das Speichern, Abrufen und Löschen.

Angular bietet das ngCookies-Modul für Benutzerfreundlichkeit und Einfachheit bei der Verwendung von Cookies. In diesem Modul werden zwei Dienste bereitgestellt, nämlich:

  1. $cookieStore-Dienst

  2. $cookies-Dienst

Lassen Sie uns zuerst über $cookies sprechen.

$cookies ähnelt jQuery.cookie.js, das Angulars Methode zum Betreiben von Cookies bereitstellt. Unter normalen Umständen kann JavaScript keine Objekte in Cookies schreiben, Angular jedoch stellt eine Methode zum Schreiben von Objekten in Cookie bereit. $cookies bietet die folgenden Methoden:

get(key) 返回一个指定key的cookie值
getObject(key) 返回一个指定key的反序列化cookie值
getAll() 以key-value对象形式返回所有的cookie
put(key,value,[options]) 写入一个key-value的cookie
putObject(key,value,[options])序列化设置一个key-value的Cookie
remove(key,[options]) 移除对应key的cookie
demo:比如用户登录,记住密码的cookie有效期是7天。
  var cookieInfo= {};
  cookieInfo.username = $scope.username;
  cookieInfo.password = $scope.password;
  var expireDate = new Date();
  expireDate.setDate(expireDate.getDate() + 7);//设置cookie保存7天
  $cookies.putObject("user", cookieDate, {'expires': expireDate});
获取也很方便:
$scope.ID = $cookies.getObject("user").username;
$scope.sid = $cookies.getObject("user").password;
简单的只有一个key-value的话用put()比较简单,但是是过期时间是session,关闭浏览器就没有了。
$cookies.put('myFavorite', 'oatmeal');
再说说$cookieStore ,$cookieStore服务是基于后端的Session Cookies,所以写入的时候不能使用options属性,
而且它的过期时间就是session。关闭浏览器了,cookie就失效了。
$cookieStore不可以通过设置default里面的expires来设置过期时间,$cookieStore操作Cookie都是基于Session过期的。
所以上面的例子你如果使用$cookieStore来实现记住用户名和密码的话,关闭浏览器cookies就失效了,无法达到记住n天的这个功能。
$cookieStore.put("user", {
                username:aaa,
                password:123
               expires: new Date(new Date().getDate() + 5000)
            });

Auf diese Weise ist die Ablaufzeit ungültig! ! ! !

Zusammenfassung:

Der vom ngCookies-Modul bereitgestellte $cookies-Dienst bietet Entwicklern großen Komfort beim Lesen und Schreiben von Cookies und unterstützt außerdem das Schreiben und Lesen von Objekten. Während des damaligen Entwicklungsprozesses konnten wir noch nicht zu viele Daten in Cookie schreiben. Erstens, weil die Größe von Cookie begrenzt war. Andererseits war das Schreiben sensibler Daten in Cookie aus Sicherheitsgründen riskant. Passwörter müssen mit dem Backend in einem Verschlüsselungsverfahren vereinbart werden und können nicht direkt im Klartext gespeichert werden, was äußerst unsicher ist. Sie müssen bei der Verwendung von Cookies vorsichtiger sein, da sonst keine Probleme auftreten.

Abschließend: Die offizielle Angular-Website hat daran erinnert, dass $cookieStore veraltet ist und es empfohlen wird, den $cookies-Dienst zu verwenden.

Verwandte Empfehlungen:

Javascript-Betrieb von Cookies und korrekte Verwendung von Cookie-Attributen_Javascript-Fähigkeiten

Implementierungscode für die Verwendung von jQuery zum Betreiben von Cookies_jquery

JS-Betrieb von Cookies beinhaltet (Lesen, Hinzufügen und Löschen)_Javascript-Kenntnisse

Das obige ist der detaillierte Inhalt vonBeispiel für die gemeinsame Nutzung von AngularJs-Cookies. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn