怎么能设置Cookie不过期,或长时间后过期?

查看 77|回复 9
作者:lz856044   
采集别人的网站,可是cookie只有15天就过期了,采集别的wordpress网站却有能保存1年的Cookie,
问题1.采集别人网站时,能否长期Cookie不过期,怎么做?
问题2.自己也有Wordpress站,怎么设置才能采集自己站也长期Cookie不过期,怎么做?
谢谢了!

长时间, 怎么做

sgywzx   

这个都是网站自己设置的时效,你自己改不了的
lz856044
OP
  


sgywzx 发表于 2024-5-20 23:06
这个都是网站自己设置的时效,你自己改不了的

我也有Wordpress站,怎么设置过期时间?
NEmo11   

给你看下我的webapi代码,通常在这里设置cookie的过期时间
[C#] 纯文本查看 复制代码builder.Services
    .AddAuthentication("MyCookieAuth")
    .AddCookie(
        "MyCookieAuth",
        options =>
        {
            options.Cookie.Name = "MyCookieAuth";
            options.ExpireTimeSpan = TimeSpan.FromMinutes(15);
        }
    );
其中options.ExpireTimeSpan = TimeSpan.FromMinutes(15);这里就是过期时间。
NEmo11   

如果是采用JWT验证的时候,Token的过期时间是类似下面这样的
[C#] 纯文本查看 复制代码var secretKey = Encoding.ASCII.GetBytes(
    configuration.GetValue("SecretKey") ?? ""
);
//生成JWT Token
var jwt = new JwtSecurityToken(
    claims: claims,
    notBefore: DateTime.UtcNow,
    expires: expireAt,
    signingCredentials: new SigningCredentials(
        new SymmetricSecurityKey(secretKey),
        SecurityAlgorithms.HmacSha256
    )
);
return new JwtSecurityTokenHandler().WriteToken(jwt);
在生成JWT token的时候,会添加上你的过期时间   expires: expireAt     这些例子就是告诉你,这是人家服务器端设置的,你改不了,知道到期以后,重新登录。
AlexBruce   

cookie的过期时间是服务端程序设置的,不同的语言和框架有不同的设置方式。
你采集别人的网站,我不太懂是什么意思,如果只是采集了别人的一些数据,内容,那么和cookie是无关的。
你自己的站点,你拥有全部的权限,是可以设置cookie的,具体怎么设置可以搜搜,比如WordPress如何设置cookie有效期。
lz856044
OP
  


NEmo11 发表于 2024-5-22 11:49
如果是采用JWT验证的时候,Token的过期时间是类似下面这样的
[mw_shl_code=csharp,true]var secretKey = E ...

wordpress再哪设置?知道么?谢谢
lz856044
OP
  


AlexBruce 发表于 2024-5-22 13:08
cookie的过期时间是服务端程序设置的,不同的语言和框架有不同的设置方式。
你采集别人的网站,我不太懂 ...

那我应该怎么设置呢?wordpress
NEmo11   

你得先看看你是通过什么验证身份的,JWT还是Cookie
NEmo11   

在WordPress中,定义cookie或token的过期时间主要涉及到设置cookie的过期时间(expires)属性。以下是一些常用的方法来设置cookie的过期时间:
1. 使用PHP原生函数设置cookie
在WordPress中,你可以使用PHP的setcookie()函数来设置cookie。例如:
setcookie("cookie_name", "cookie_value", time() + 3600, "/"); // 设置cookie在1小时后过期
其中,time() + 3600表示从当前时间起1小时后的Unix时间戳,"/"表示cookie的作用域为整个网站。
2. 使用WordPress函数设置cookie
WordPress提供了wp_set_auth_cookie()函数来设置认证cookie,这个函数允许你设置cookie的过期时间。例如:
wp_set_auth_cookie($user_id, $remember = true, is_ssl());
$user_id是用户的ID。
$remember参数如果设置为true,则cookie将持久化,通常为两周时间。
is_ssl()用于确定是否使用安全的连接。
如果你需要自定义过期时间,可以修改WordPress的auth_cookie_expiration过滤器:
add_filter('auth_cookie_expiration', function() {
    return time() + 3600; // 设置cookie在1小时后过期
});
3. 使用插件
WordPress有许多插件可以帮助你管理cookie和token,包括设置过期时间。你可以搜索并安装一个适合你需求的插件。
4. 使用JavaScript设置cookie
如果你在前端使用JavaScript,可以使用document.cookie来设置cookie:
document.cookie = "cookie_name=cookie_value; expires=" + new Date(new Date().getTime() + 3600000).toUTCString() + "; path=/";
new Date().getTime() + 3600000设置cookie在1小时后过期,JavaScript中时间是以毫秒为单位的。
toUTCString()将日期转换为UTC时间字符串。
注意事项:
确保你了解不同浏览器对cookie的策略,以及用户可能设置的隐私选项,这可能会影响cookie的存储和过期。
如果你使用第三方服务(如Google Analytics),请确保遵守其关于cookie使用的规定。
在设置cookie时,考虑用户的隐私和安全,合理设置过期时间,避免不必要的数据泄露。
通过以上方法,你可以在WordPress中定义cookie或token的过期时间。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部