2016-06-23 67 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'); 
    } 
} 

我张贴为时已晚,但希望这会有用。