Angular에서 쿠키의 유효기간을 설정하는 방법JS
브라우저의 리프레시(F5)에 손실되지 않는 사용자 인증 정보를 쿠키에 저장하려고 합니다.
사용자가 로그온 시 "Remember Me" 확인란을 선택한 경우 "permanent-cookie"에 인증 정보를 저장하려고 합니다.
는 1.4.0을 .0 합니다.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});
}]);
1.4의 경우: 아래 코멘트 및 기타 코멘트에서 설명한 바와 같이 1.4를 기점으로 Angular의 네이티브 쿠키 지원에서 쿠키를 편집할 수 있게 되었습니다.
38fbe3ee로 인해 $cookies는 현재 브라우저 쿠키 값을 나타내는 속성을 더 이상 노출하지 않습니다.$cookie는 쿠키 변경을 위해 브라우저를 폴링하지 않으며 쿠키 값을 $cookie 객체에 복사하지 않습니다.
이는 폴링이 비용이 많이 들고 $cookies 속성이 실제 브라우저 쿠키 값과 올바르게 동기화되지 않는 문제가 발생했기 때문에 변경되었습니다(폴링이 추가된 이유는 원래 다른 탭 간의 통신을 허용하기 위한 것이었지만 localStorage와 같은 더 나은 방법이 있습니다).
$cookies의 새로운 API는 다음과 같습니다.
get put Object put Object get All remove 쿠키 데이터에 액세스하려면 위의 메서드를 사용해야 합니다.이는 $cookies의 속성을 감시하여 브라우저 쿠키에서 발생하는 변경을 검출할 수 없음을 의미합니다.
이 기능은 일반적으로 서드파티 라이브러리가 실행 시 쿠키를 프로그래밍 방식으로 변경한 경우에만 필요합니다.이를 신뢰하는 경우 쿠키 변경을 수행하는 서드파티 라이브러리에 반응할 수 있는 코드를 작성하거나 자체 폴링 메커니즘을 구현해야 합니다.
실제 실장은 $cookiesProvider 객체를 통해 이루어집니다.이 객체는 콜을 통해 전달될 수 있습니다.
1.3 이하의 경우:jQuery 플러그인의 로드를 피하기 위해 최선을 다한 분들을 위해 이것은 angular - https://github.com/ivpusic/angular-cookie을 대체하는 좋은 방법인 것 같습니다.
Angular v1.4에서는 쿠키에 대한 일부 옵션(예: 만료)을 설정할 수 있습니다.다음은 매우 간단한 예입니다.
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'
이 코드를 실행한 후 쿠키를 체크하면 만료가 다음과 같은 쿠키로 올바르게 설정되어 있음을 알 수 있습니다.someToken.
오브젝트가 세 번째 파라미터로 전달되었습니다.put위의 함수는 설정 등 다른 옵션도 허용합니다.path,domain그리고.secure개요에 대해서는, 문서를 참조해 주세요.
PS - 업그레이드 시 주의사항:$cookieStore더 이상 사용되지 않기 때문에$cookies이제 쿠키를 처리하는 유일한 방법입니다.문서를 참조하다
쿠키의 지속시간을 알고 계신 분들도 계시기 때문에 추가 예를 제시하겠습니다.즉, 쿠키를 10분 또는 하루 더 지속되도록 설정하려고 합니다.
보통 당신은 쿠키가 몇 초 안에 얼마나 오래 지속될지 이미 알고 있다.
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});
통상대로 취득할 수 있습니다.
var myCookiesValue = $cookies.getObject('myCookiesName');
비어 있으면 정의되지 않은 상태로 반환됩니다.
링크
http://www.w3schools.com/jsref/jsref_obj_date.asp
https://docs.angularjs.org/api/ngCookies/provider/$cookiesProvider#defaults
angular.js 스크립트로 이동하여 삽입 쿠키를 변경할 수 있습니다.
을 찾다self.cookies = function(name, value) {그러면 7일 동안 쿠키를 추가하는 코드를 변경할 수 있습니다.
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
저는 이 질문이 좀 오래되었다는 것을 알고 있으며, 이미 받아들여진 답변을 가지고 있습니다.
하지만 여전히 제가 어려움을 겪고 있는 현재의 문제(jQuery나 순수 Javascript에 관한 것이 아닙니다)입니다.
그래서 몇 가지 조사 결과, https://github.com/ivpusic/angular-cookie라는 것을 알게 되었습니다.
$cookie Store와 비슷한 "인터페이스"를 제공합니다.또한 유효기간(값 및 단위)을 설정할 수 있습니다.
유효기간 만료일에 $120 또는 $cookie Store를 사용한 각진 네이티브 지원에 대해서는, 이 주제에 관한 갱신을 1.4로 「그들」이 약속하고 있는 것에 대해서는, https://github.com/angular/angular.js/pull/10530 를 참조해 주세요.
$cookieStore.put(...)로 유효기간을 설정할 수 있습니다.최소한 그들은 다음을 제안합니다.
편집: $cookie와 angular-cookie 모듈을 혼재시킬 수 없는 "문제"가 발생했습니다.그래서 쿠키 세팅하면ipCookie(...)로 그것을 회수하다.ipCookie(...)왜냐하면 $140를 가지고 돌아오기 때문이다.undefined.
@vincent-briglia가 지적한 바와 같이 jQuery 드롭인이 있습니다.이 드롭인은 회피책으로 사용할 수 있습니다.$cookie서비스를 구성할 수 있게 되었습니다.여기에서 확인하세요.
https://github.com/ivpusic/angular-cookie 를 사용할 수 있습니다.
먼저 각진 모듈에 ipCookie를 주입해야 합니다.
var myApp = angular.module('myApp', ['ipCookie']);
예를 들어 컨트롤러에서 사용하고 싶은 경우
myApp.controller('cookieController', ['$scope', 'ipCookie', function($scope, ipCookie) {
// your code here
}]);
쿠키 사용을 작성하려면
ipCookie(key, value);
이 값은 문자열, 숫자, 부울란, 배열 및 개체를 지원하며 쿠키에 자동으로 직렬화됩니다.
또한 쿠키가 만료되는 날짜 수와 같은 일부 추가 옵션을 설정할 수 있습니다.
ipCookie(key, value, { expires: 21 });
언급URL : https://stackoverflow.com/questions/12624181/how-to-set-expiration-date-for-cookie-in-angularjs
'programing' 카테고리의 다른 글
| 리액트 렌더 함수로 비동기화하는 방법 (0) | 2023.03.26 |
|---|---|
| Wordpress 프로젝트에 .gitignore 파일에서 가장 적합한 설정은 무엇입니까? (0) | 2023.03.26 |
| Oracle 데이터베이스를 사용하여 HQL 쿼리에서 현재 날짜를 사용하려면 어떻게 해야 합니까? (0) | 2023.03.21 |
| 사용자 지정 게시 유형의 분류법 값을 가져오는 방법 (0) | 2023.03.21 |
| Gson - 자동 따옴표(")가 이스케이프됩니까? (0) | 2023.03.21 |