Maison  >  Article  >  interface Web  >  Partage d'exemples de cookies d'exploitation AngularJs

Partage d'exemples de cookies d'exploitation AngularJs

小云云
小云云original
2018-03-08 15:26:121643parcourir

Le cookie peut être considéré comme une technologie côté client. Le programme écrit certaines informations de l'utilisateur dans le navigateur respectif de l'utilisateur sous la forme d'un cookie. Pour parler franchement, il s'agit des données stockées sur l'ordinateur de l'utilisateur par le site Internet afin d'identifier l'identité de l'utilisateur. La fonction de panier d'achat et la fonction de connexion automatique au forum de nombreux sites Web commerciaux sont mises en œuvre par des cookies.

Le fonctionnement des cookies comprend l'enregistrement, la récupération et la suppression.

Angular fournit le module ngCookies pour la commodité de l'utilisateur et la simplicité d'utilisation des cookies. Il existe 2 services fournis dans le cadre de ce module, à savoir :

  1. Service $cookieStore

  2. Service $cookies

Parlons d'abord des $cookies.

$cookies est similaire à jQuery.cookie.js, qui fournit la méthode d'exploitation des cookies d'Angular. Dans des circonstances normales, JavaScript ne peut pas écrire d'objets dans les cookies, mais Angular. fournit une méthode pour écrire des objets dans Cookie. $cookies propose les méthodes suivantes :

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)
            });

De cette façon, le délai d'expiration n'est pas valide ! ! ! !

Résumé :

Le service $cookies fourni par le module ngCookies offre une grande commodité aux développeurs pour lire et écrire des cookies, et prend également en charge l'écriture et la lecture d'objets. Au cours du processus de développement à cette époque, nous ne pouvions toujours pas écrire trop de données dans les cookies. Premièrement, la taille des cookies était limitée. D'un autre côté, l'écriture de données sensibles dans les cookies était risquée en termes de sécurité. Les mots de passe doivent être convenus avec le backend via une méthode de cryptage et ne peuvent pas être stockés directement en texte clair, ce qui est extrêmement dangereux. Vous devez être prudent lorsque vous utilisez des cookies. Faites plus attention aux pièges du chemin et du domaine, et il n'y aura aucun problème.

Enfin : le site officiel d'Angular a rappelé que $cookieStore est obsolète et qu'il est recommandé d'utiliser le service $cookies.

Recommandations associées :

Javascript exploitant les cookies et utilisant correctement les attributs des cookies_javascript skills

Code d'implémentation pour utiliser jQuery pour faire fonctionner Cookies_jquery

Les cookies d'exploitation JS incluent (lecture, ajout et suppression) des compétences_javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn