3

如何以小时为单位添加 cookie 的到期时间,我可以用天来处理。

Cookie.set('SESSION_TOKEN', sessionToken, 6); // here 6 is days

我要几个小时。我希望 cookie 在 6 小时内过期。

Cookie.set('SESSION_TOKEN', sessionToken, 6(hours)); // 6 hours

下面是我正在使用的代码,但出现错误“ 'Date' 类型的参数不可分配给 'number' 类型的参数

setCookie(userObject) {
    let expire = new Date();
    var time = Date.now() + ((3600 * 1000) * 6);
    expire.setTime(time);
    console.log("expire "+expire);
    Cookie.set('USER_NAME',Base64.encode(userObject.user.email),expire);
    Cookie.set('SESSION_TOKEN',userObject.sessionToken,expire);
}
4

3 回答 3

3

我曾经这样做过,它对我有用。

 Cookie.set('SESSION_TOKEN',userObject.sessionToken,0.25);

实际上,如果我们1让它保持 24 小时,所以我对其应用了数学逻辑,即 6 小时。

1 day -> 24 hrs
? day -> 6 hrs
(1*6)/24 -> 0.25 i.e. 6hrs
于 2017-02-13T09:02:49.960 回答
0

据我所知,当前版本ng2-cookies不包含允许您定义小时而不是天的功能。因此,您必须手动计算 cookie 过期的时间。

ng2-cookies/src/cookie.ts

/**
 * Save the Cookie
 *
 * @param  {string} name Cookie's identification
 * @param  {string} value Cookie's value
 * @param  {number} expires Cookie's expiration date in days from now or at a specific date from a Date object. If it's undefined the cookie is a session Cookie
 * @param  {string} path Path relative to the domain where the cookie should be avaiable. Default /
 * @param  {string} domain Domain where the cookie should be avaiable. Default current domain
 * @param  {boolean} secure If true, the cookie will only be available through a secured connection
 */
public static set(name: string, value: string, expires?: number | Date, path?: string, domain?: string, secure?: boolean) {

所以我想这样的事情可能会奏效。

import { Cookie } from 'ng2-cookies';

var expire = new Date();
var time = Date.now() + ((3600 * 1000) * 6); // current time + 6 hours ///
expire.setTime(time);

Cookie.set("test", "", expire);
于 2017-02-02T10:01:55.170 回答
0

您还可以执行以下操作并在数小时内设置它以降低复杂性:

const now = new Date();
now.setHours(now.getHours() + 8);
Cookie.set('SESSION_TOKEN', sessionToken, now);

然后,您可以通过更改中的数字轻松地以小时为单位设置您希望的到期时间setHours:)

于 2020-01-23T11:42:06.460 回答