Verifier la presence de cookies dans AngularJs

Par Zeb, il y a 10 ans


Bonjour a tous
Je debute en programme et j'essaie de mettre en place un systeme de login basant sur les cookies ...
Je voudrais checker si les cookies (user or session) n'existe pas --> redirection vers le lien log.php

var $cookies; angular.injector(['ngCookies']).invoke(function(_$cookies_) { $cookies = _$cookies_; }); if (!$cookies['user'] or !$cookies['session']){ $window.location = "log.php"; }

J'ai pas d'erreur mais ca n'execute ce qui est dans la boucle
Merci d'avance

6 réponses

Ramzz1994, il y a 10 ans

Quelle boucle ? :'-)

De toute façon, or ça existe pas en JavaScript, il faut utiliser ||. Pis j'ai pas vraiment compris pourquoi tu utilisais l'injecteur d'Angular.

Utilise les contextes d'Angular, comme un contrôleur ou directement la méthode run de l'application.

Khalysto, il y a 10 ans

C'est pas un peu chaud de débuter directement par Angular ? xD
Comme on dit, tu tues des mouches avec un fusil à pompe, le JS vanilla gère très bien les cookies :

document.cookie ="monSuperCookie=valeurCookie"

Et après tu fais tes vérifs avec tes if bizarres ^^

Zeb, il y a 10 ans
// Initialisation var app = angular.module('web', ['ui.bootstrap', 'ngRoute', 'nCookies']); // Controller indexCtrl for index.html app.controller('indexCtrl', function($cookies){ // LOGIN //Si pas les cookies if (!$cookies['user'] || !$cookies['session']){ $window.location = "log.php"; } else { $window.location = "param.html"; }

En faite j'essai de mettre ca en place mais j'ai l'impression qu'il ne voit pas les cookies puisque ca me renvoie vers log.php ensuiteca tourne en boucle toujours a se connecter

Maenhyr, il y a 10 ans

Salut, tu as l'air d'avoir une typo dans l'initialisation de ton module de cookies. Est ce que ca ne serait pas ngCookies plutôt ?

Zeb, il y a 10 ans

C'est ngCookies (aute de frappe) .... y'aurait-il une autre facon d'ecrire SI PAS LES COOKIES ?

Ramzz1994, il y a 10 ans

Si tu utilises Chrome, il te laissera pas setter des cookies sur le protocole file, à moins que tu lui passes un paramètre (ou dans la configuration). :-)