我們希望將用戶的授權信息存儲在Cookie中,在瀏覽器刷新(F5)時不會丟失。如何在AngularJS中設置cookie的到期日期
如果用戶在登錄時選擇了「記住我」複選框,我們希望將授權信息存儲在「永久cookie」中。
回答
正如@文森特 - briglia pointed out,有一個jQuery下降,在直到$cookie
服務變得配置可作爲一種變通方法 - check it out here
爲1.4: 正如評論指出這裏和其他人以下,爲1.4,角的原生支持cookie現在提供了編輯Cookie的功能:
由於38fbe3ee,$餅乾將不再公開該 表示當前瀏覽器cooki性質e值。 $ cookie不再調查 瀏覽器對cookie的更改,不再將cookie的值 複製到$ cookies對象上。
這是改變,因爲投票是昂貴的,造成的問題 與$餅乾性能不符合 實際瀏覽器cookie值正確同步(原因輪詢原是 添加是允許不同的選項卡之間的通信,但有。是 更好的方法來做到這一點今天,例如localStorage的)
新的API上$餅乾如下:
得到放的getObject putObject GETALL刪除您必須顯式地使用 以上方法,以獲取鴣鴣聲kie數據。這也意味着您 不能再觀看$ cookie上的屬性來檢測瀏覽器cookie上發生的 更改。
此功能通常只需要第三方庫 在運行時以編程方式更改cookie。如果您依賴此 那麼您必須編寫能夠對第三方庫作出反應的代碼,以便對cookie進行更改或實施您自己的輪詢 機制。
實際執行是通過$cookiesProvider對象完成的,該對象可以通過put
調用傳遞。
1.3及以下: 對於那些你們誰做你最好的,以避免加載jQuery插件,這似乎是一個不錯的替代品角 - https://github.com/ivpusic/angular-cookie
使用Angular 1.3或更低版本的最佳解決方案。如果'{'expires':expireDate});'或..............................,則文檔中不太清楚 – vegemite4me
你可以去angular.js腳本和改變插入的cookie
搜索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
它提供了一個「接口」神似$的CookieStore。並允許配置到期日期(值和單位)。
關於在到期日以$餅乾或$的CookieStore角的原生支持,「他們」對1.4這個問題的承諾更新,看看這個:https://github.com/angular/angular.js/pull/10530
將有可能設置有效期限與$的CookieStore .put(...),至少他們提出...
編輯:我遇到了一個「問題」,你不能混合$ cookie與角-cookie模塊。因此,如果您使用ipCookie(...)
設置cookie,則可以用ipCookie(...)
檢索它,因爲使用$ cookie它將返回undefined
。
在Angular v1.4中,您可以終於爲設置了一些cookies選項,例如到期。這裏是一個非常簡單的例子:
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
餅乾後檢查您的Cookie。上述
作爲第三PARAM到put
功能傳遞的對象允許其他選項,以及,諸如設置path
,domain
和secure
。查看the docs以獲得總覽。
PS - 作爲一個側面說明,如果你正在升級記住,$cookieStore
已被棄用,因此現在$cookies
是對付餅乾的唯一方法。看到docs
這可能是在1.4.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});
}]);
........................'[{'expires':expireDate}]);'應該使用格式... – Serge
我想提出一個額外的例子如一些人知道的額外時間cookies的一生。即。他們希望將cookie設置爲持續10分鐘或1天。
通常你已經知道cookie會在幾秒鐘內持續多久。
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');
如果爲空,則返回undefined。
鏈接;
http://www.w3schools.com/jsref/jsref_obj_date.asp
https://docs.angularjs.org/api/ngCookies/provider/ $ cookiesProvider#默認
'today'來自? –
我試圖讓代碼更好,並忘記將所有'現在改爲今天。現在應該沒問題。 –
您可以使用https://github.com/ivpusic/angular-cookie
首先你需要注入ipCookie到您的角度模塊。
var myApp = angular.module('myApp', ['ipCookie']);
而現在,例如,如果你想使用它從你的控制器
myApp.controller('cookieController', ['$scope', 'ipCookie', function($scope, ipCookie) {
// your code here
}]);
要創建一個cookie的使用
ipCookie(key, value);
值支持字符串,數字,布爾值,數組和對象,並會自動序列化到cookie中。 //people.opera:
你也可以當一個cookie過期
ipCookie(key, value, { expires: 21 });
- 1. 如何在cfscript中設置cookie的到期日期
- 2. Cookie設置日期過期
- 3. 無法設置cookie到期日期
- 4. 如何設置ASP.NET_SessionId cookie的到期日期?
- 5. 如何設置客戶端cookie的到期日期?
- 6. 的cookie設置過期日期
- 7. 設置Cookie時的過期日期
- 8. 無法使用javascript在Cookie中設置到期日期?
- 9. 如何設置RxJS.Observable.timer()到期日期
- 10. angularjs帶日期選擇器如何設置日期
- 11. PHP-如何更新Cookie到期日期?
- 12. 設置來自不同域的Cookie的到期日期
- 13. 如何在Angular 2中設置cookie的失效日期?
- 14. 如何將倒數計時器設置爲cookie過期日期?
- 15. 設置Cookie到期時間
- 16. 設置日期到昨天的日期
- 17. 如何在django中的SelectDateWidget中設置日期日期
- 18. Angularjs:$ cacheFactory的日期到期
- 19. 如何設置沒有過期日期的cookie以及如何設置自定義cookie標頭?
- 20. 用路徑設置cookie但沒有到期日期?
- 21. 在日期中設置特定日期
- 22. 使用js-cookie設置cookie到期
- 23. 我的cookie過期日期沒有在localhost上設置
- 24. 在datepicker上設置當前日期AngularJS
- 25. 如何在java中設置到期日期
- 26. 如何在svn中設置到期日期
- 27. 如何在Woocommerce中設置購物車到期日期?
- 28. 如何在構造函數中設置到期日期?
- 29. 如何在Angular js中設置Cookie的到期時間?
- 30. 如何延長cookie設置在php中的到期時間?
暫時我使用本地存儲和會話存儲用於此目的的參考HTTP設置一些額外的選項,比如天數。 com/shwetankd/external/demos/webstorage_demo.htm –