如何在Angular 2中设置cookie的到期日期?

时间:2016-06-23 04:58:43

标签: cookies angular

如何为Angular 2 cookie添加到期日期。我正在尝试使用Angular 2.0.0-beta.15。当我尝试添加如下选项时:

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

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

上面的代码抛出错误,如“[ts]类型'{expires:Date;}'的参数'不能分配给'CookieOptionsArgs'类型的参数。

  

类型'{expires:Date; }”。 (本地var)   expireDate:日期“

我可以在https://www.npmjs.com/package/angular2-cookie上看到全局覆盖默认选项。我怀疑这是否是为cookie添加到期日期的方法?有人可以帮我理解这个吗?

3 个答案:

答案 0 :(得分:2)

我已成功使用此库:https://github.com/BCJTI/ng2-cookies。如下设置有效期:

  1. 包括lib:

    从' ng2-cookies / ng2-cookies'中导入{Cookie};

  2. 设置有效期为365天的Cookie:

    Cookie.setCookie(" cookie-key"," cookie-value",365);

答案 1 :(得分:2)

有点迟,但应该是这样的

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

希望

答案 2 :(得分:1)

对于设置Cookie中的到期日期参数,该值应为秒到天计算。

即。 2分钟=(2/1440)

//使用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');
    }
}

我发布太晚了,但希望这会有用。