2015-12-03 37 views
0

我是新的,并试图存储cookie和参数过期饼干,域名,安全等 我建立一个工厂存储cookieangular.js饼干不存储到期时间,域名

app.factory('SetCookies',function($cookieStore,$timeout,$window){ 
var authService = {}; 
authService.create = function (username,email,id,sessionID) { 
         var expired = new Date(); 
         expired.setTime(expired.getTime() + (10*1000));             
         $cookieStore.put('Name',username, {expires : expired, secure:true, domain:'http://localhost/test' }); 
         $cookieStore.put('Email',email, {expires : expired, secure:true, domain:'http://localhost/test' }); 
         $cookieStore.put('LogCode',id, {expires : expired, secure:true, domain:'http://localhost/test' }); 
         $cookieStore.put('Token',sessionID, {expires : expired, secure:true, domain:'http://localhost/test' }); 
         $cookieStore.put('isLoggedIn',true, {expires : expired, secure:true, domain:'http://localhost/test' });   

         }; 
return authService; 

})

我在登录控制器叫这个来设置cookie

SetCookies.create(user.data.username, user.data.email, user.data.id, user.data.session_id); 

登录我检查了饼干后超时在主控制器

$timeout(function(){ 
     if(!$cookieStore.get('isLoggedIn')){ 
       $location.path('/'); 
       } 
    },20); 

但是当我在所有浏览器上检查它时,只有值。

结果就像下面的截图 enter image description here

回答

0

Angularjs的CookieStore已弃用。您应该改用$cookies。但我发现它可能会有点臃肿。在过去,我一直选择使用原生JavaScript来处理cookies。

+0

使用$ cookies而不是$ cookieStore在控制台中获取错误 “$ cookies.get不是函数” –

+0

您是否在工厂和控制器中包含了$ cookie? –

+0

factory app.factory('SetCookies',function($ cookies,$ cookieStore,$ timeout,$ window) controller app.controller('LoginController',function($ scope,$ rootScope,AUTH_EVENTS,AuthService,$ theme ,SetCookies) 主控制器 –