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


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.

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
Auteur
// 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

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
Auteur

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

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). :-)