variable read leer guardar enviar ejemplos crear cookie javascript cookies angularjs session-cookies angular-cookies

javascript - read - Cómo establecer la fecha de vencimiento de la cookie en AngularJS



leer cookie javascript (8)

Como señaló @ vincent-briglia, hay un complemento de jQuery que se puede utilizar como solución alternativa hasta que el servicio de $cookie se pueda configurar. Mírelo aquí

  1. Queremos almacenar la información de Autorización del usuario en una cookie que no debe perderse al actualizar (F5) del navegador.

  2. Queremos almacenar información de autorización en "cookie permanente" en caso de que el usuario haya optado por la casilla de verificación "Recordarme" en el momento del inicio de sesión.


En Angular v1.4, finalmente puede establecer algunas opciones para las cookies, como la caducidad. Aquí hay un ejemplo muy simple:

var now = new Date(), // this will set the expiration to 12 months exp = new Date(now.getFullYear()+1, now.getMonth(), now.getDate()); $cookies.put(''someToken'',''blabla'',{ expires: exp }); var cookie = $cookies.get(''someToken''); console.log(cookie); // logs ''blabla''

Si revisa sus cookies después de ejecutar este código, verá que la caducidad se configurará correctamente en la cookie llamada someToken .

El objeto pasado como un tercer parametro a la función de put arriba también permite otras opciones, como la configuración de path , domain y secure . Verifique $cookiesProvider para obtener una descripción general.

PD : como nota al margen si está actualizando la idea de que $cookieStore ha quedado obsoleto, entonces $cookies es ahora el único método para tratar con las cookies. ver docs


Me gustaría presentar un ejemplo adicional ya que algunas personas conocen la duración adicional de la vida útil de las cookies. es decir. Quieren configurar una cookie para que dure 10 minutos más, o 1 día más.

Por lo general, ya sabe cuánto tiempo durará la cookie en segundos.

var today = new Date(); var expiresValue = new Date(today); //Set ''expires'' option in 1 minute expiresValue.setMinutes(today.getMinutes() + 1); //Set ''expires'' option in 2 hours expiresValue.setMinutes(today.getMinutes() + 120); //Set ''expires'' option in (60 x 60) seconds = 1 hour expiresValue.setSeconds(today.getSeconds() + 3600); //Set ''expires'' option in (12 x 60 x 60) = 43200 seconds = 12 hours expiresValue.setSeconds(today.getSeconds() + 43200); $cookies.putObject(''myCookiesName'', ''myCookiesValue'', {''expires'' : expiresValue});

y puedes recuperarlo como de costumbre:

var myCookiesValue = $cookies.getObject(''myCookiesName'');

Si está vacío, devuelve indefinido.

Campo de golf;

http://www.w3schools.com/jsref/jsref_obj_date.asp
https://docs.angularjs.org/api/ngCookies/provider/ $ cookiesProvider # defaults


Para 1.4: Como se señala en el comentario aquí y en otros a continuación, a partir de 1.4, el soporte de cookies nativo de Angular ahora ofrece la capacidad de editar cookies:

Debido a 38fbe3ee, $ cookies ya no expondrán las propiedades que representan los valores actuales de las cookies del navegador. $ cookies ya no sondea el navegador para ver si hay cambios en las cookies y ya no copia los valores de las cookies en el objeto $ cookies.

Esto se modificó porque el sondeo es costoso y causa problemas con las propiedades $ cookies que no se sincronizan correctamente con los valores reales de las cookies del navegador (La razón por la cual el sondeo se agregó originalmente para permitir la comunicación entre pestañas diferentes, pero hay mejores formas de hacerlo hoy , por ejemplo localStorage).

La nueva API en $ cookies es la siguiente:

get put getObject putObject getAll remove Debe usar explícitamente los métodos anteriores para acceder a los datos de las cookies. Esto también significa que ya no puede ver las propiedades en $ cookies para detectar los cambios que ocurren en las cookies del navegador.

Por lo general, esta característica solo es necesaria si una biblioteca de terceros estaba cambiando las cookies de forma programática en tiempo de ejecución. Si confía en esto, entonces debe escribir un código que pueda reaccionar ante la biblioteca de terceros que realiza los cambios en las cookies o implementar su propio mecanismo de votación.

La implementación real se realiza a través de un objeto $cookiesProvider , que se puede pasar a través de la llamada put .

Para 1.3 y siguientes: para aquellos de ustedes que han hecho todo lo posible para evitar tener que cargar complementos jQuery, este parece ser un buen reemplazo para angular - https://github.com/ivpusic/angular-cookie


Puede ir al script angular.js y cambiar el insert cookie
busque self.cookies = function(name, value) { luego puede cambiar el código que agrega la cookie, por ejemplo, durante 7 días

if (value === undefined) { rawDocument.cookie = escape(name) + "=;path=" + cookiePath + ";expires=Thu, 01 Jan 1970 00:00:00 GMT"; } else { if (isString(value)) { var now = new Date(); var time = now.getTime(); time += 24*60*60*1000*7; now.setTime(time); cookieLength = (rawDocument.cookie = escape(name) + ''='' + escape(value) + '';path='' + cookiePath+";expires="+now.toGMTString()).length + 1


Puede usar https://github.com/ivpusic/angular-cookie

Primero necesitas inyectar ipCookie en tu módulo angular.

var myApp = angular.module(''myApp'', [''ipCookie'']);

Y ahora, por ejemplo, si quieres usarlo desde tu controlador

myApp.controller(''cookieController'', [''$scope'', ''ipCookie'', function($scope, ipCookie) { // your code here }]);

Para crear un uso de cookies

ipCookie(key, value);

El valor admite cadenas, números, booleanos, matrices y objetos, y se serializará automáticamente en la cookie.

También puede establecer algunas opciones adicionales, como el número de días en que caduca una cookie

ipCookie(key, value, { expires: 21 });


Sé que esta pregunta es un poco vieja, y ya tengo una respuesta aceptada.

Pero todavía es un problema presente con el que estoy luchando (no con respecto a jQuery o Javascript puro).

Entonces, después de algunas investigaciones, he encontrado esto: https://github.com/ivpusic/angular-cookie

Que ofrece una "interfaz" bastante similar a $ cookieStore. Y permite configurar la fecha de vencimiento (valor y unidades).

Acerca de la compatibilidad nativa angular en la fecha de vencimiento con $ cookie o $ cookieStore, "ellos" prometen actualizaciones sobre este tema en 1.4, investigue esto: https://github.com/angular/angular.js/pull/10530

Será posible establecer la fecha de vencimiento con $ cookieStore.put (...), al menos proponen que ...

EDIT: encontré un "problema" que no puede mezclar $ cookies con angular-cookie modular. Entonces, si configura una cookie con ipCookie(...) ipCookie(...) con ipCookie(...) porque con $ cookie se devolverá undefined .


Esto es posible en la construcción 1.4.0 de angular usando el módulo ngCookies :

https://docs.angularjs.org/api/ngCookies/service/$cookies

angular.module(''cookiesExample'', [''ngCookies'']) .controller(''ExampleController'', [''$cookies'', function($cookies) { // Find tomorrow''s date. var expireDate = new Date(); expireDate.setDate(expireDate.getDate() + 1); // Setting a cookie $cookies.put(''myFavorite'', ''oatmeal'', {''expires'': expireDate}); }]);