2013-09-05 1 views
0
login: function(user, success, error) { 
     var s = new session(user); 
     s.$login({}, function (u, putResponseHeaders) { 
      if ($cookies.user) { 
       console.log('cookie set' + $cookies.user); 
       user = JSON.parse($cookies.user); 
      } 
      else 
       console.log('no cookie set after login'); 

      console.log(u); 

      $rootScope.user = user; 
      console.log($rootScope.user.role); 
      success(user); 
     }, function() { 
      error(); 
     }); 
    }, 

사용자가 로그인을 클릭하고 서버가 인증 쿠키를 설정하면 위의 함수는 쿠키를 처리하고 성공 (사용자)을 호출한다고 가정합니다. 문제는 처음으로 사용자가 로그인을 클릭하면 '로그인 후 쿠키가 설정되지 않았습니다.'라는 쿠키가 표시되지 않으며 사용자가 두 번째 클릭하면 쿠키가 승인됩니다. 크롬은 처음 사용자가 클릭 한 쿠키 세트를 볼 수 있지만 왜 각도 js 코드에서 쿠키를 볼 수 없습니까?Angularjs 로그인 쿠키가 두 번째로 작동합니다.

답변

0

쿠키가 아직 설정되지 않았기 때문에 Javascript에서 사용할 수 있습니다.

이것은 당신이하고있는 일을하는 이상한 방법입니다. 왜 쿠키에 관심이 있으십니까? 로그인해서는 안됩니다 JSON 양식에서 사용자 개체를 반환하고 대신 그냥 사용합니까? 쿠키는 세션 정보를 전달할 수 있어야합니다.

+0

감사합니다. 블로그 게시물을 팔로우하고있었습니다. –

관련 문제