2016-06-23 109 views
2

如何將有效期限添加到Angular 2 cookie。我正在嘗試使用Angular 2.0.0-beta.15。當我嘗試添加如下選項:如何在Angular 2中設置cookie的失效日期?

var expireDate = new Date(new Date()。getTime()+(1000 * data.expires_in));

this._cookieService.put('token',this.token,{expires:expireDate});

上面的代碼拋出錯誤,如「類型的[TS]參數‘{到期:日期;}’。是不能分配給類型的參數‘CookieOptionsArgs’ 住宅‘路徑’中缺少類型「{到期:日期; }'。 (local var)expireDate:Date「

我可以在https://www.npmjs.com/package/angular2-cookie上看到覆蓋全局默認選項。我懷疑這是否是將有效期限添加到cookie的方法?有人可以幫助我更多地瞭解這一點嗎?

+0

我認爲所有參數都是強制性的。當我添加所有參數錯誤消失了。不可能只添加一個參數到cookie? – revathi

+0

我建議使用Angular 2 rc3,然後採用angular2-cookie的1.2.x版本'請使用angular2 beta的1.1.x版本,1.2.x版本用於發佈候選版本。「# – AngJobs

回答

2

我已成功使用此庫:https://github.com/BCJTI/ng2-cookies。使用它像下面設置截止日期:

  1. 包含的lib:

    進口{}的Cookie從 'NG2餅乾/ NG2餅乾';

  2. 設置與365天有效期一個Cookie:

    Cookie.setCookie( 「曲奇鍵」, 「餅乾值」,365);

1

來得有點晚,但如果是這樣的

let key = 'testCookieKey'; 
let value = 'testCookieValue'; 
let opts: CookieOptionsArgs = { 
    expires: new Date('2030-07-19') 
}; 
cookieService.put(key, value, opts); 

。希望

+0

你在哪裏運動CookieOptionsArgs來自? – phil1234

1

對於一個Cookie有效期參數的值應該是秒到天計算。

即2分鐘=(一千四百四十〇分之二)

//使用2分鐘....

AUTH-cookies.ts

import { Injectable } from '@angular/core'; 
import { Cookie } from 'ng2-cookies/ng2-cookies'; 

@Injectable() 
export class AuthCookie { 
    constructor() { } 

    getAuth(): string { 
     return Cookie.get('id_token'); 
    } 

    setAuth(value: string): void { 
     //0.0138889=20 minuts 
     //this accept day not minuts 
     //use for 20 minuts 
     Cookie.set('cookie_token', value, 0.0138889); 
     //use for 2 minuts 
    // Cookie.set('cookie_token', value,0.00138889) 
    } 

    deleteAuth(): void { 
     Cookie.delete('id_token'); 
    } 
} 

我張貼爲時已晚,但希望這會有用。