dede如何设置cookie的长短有效期?

99ANYc3cd6
预计阅读时长 9 分钟
位置: 首页 DEDE建站 正文

下面我将为你详细解释如何操作,并提供不同场景下的设置建议。

dede设置cookie长短
(图片来源网络,侵删)

核心方法:修改 config.cache.inc.php

这个文件位于 DedeCMS 的根目录下(/wwwroot//public_html/)。

步骤 1:定位 cfg_cookie_encodecfg_cookie_encode_pre

打开 config.cache.inc.php 文件,找到下面这两行代码:

// Cookie 加密密钥,用于加密 Cookie 数据,请务必修改为复杂的随机字符串
$cfg_cookie_encode = 'DedeCMS@#$%'; 
// Cookie 加密前缀,用于区分 Cookie,一般无需修改
$cfg_cookie_encode_pre = 'DEDE_';

重要提示:

  • $cfg_cookie_encode加密密钥,不是有效期,它的作用是加密和解密 Cookie 中的敏感信息(如用户ID、登录状态等),确保数据安全。为了网站安全,请务必将其修改为一串复杂且唯一的随机字符串,不要使用默认值。
  • $cfg_cookie_encode_preCookie 前缀,用来避免与其他网站的 Cookie 冲突,通常保持默认即可。

你直接修改这两行代码,并不能改变 Cookie 的有效期。

dede设置cookie长短
(图片来源网络,侵删)

步骤 2:定位 cfg_cookie_time 并修改有效期

在同一文件中,找到 cfg_cookie_time 这一行,这才是真正控制 Cookie 有效期的变量:

// Cookie 有效期,单位为秒,默认为 365 天
$cfg_cookie_time = 31536000; 

这里的值是一个整数,单位是秒,你可以根据需要修改这个数值。


常用 Cookie 有效期设置示例

以下是一些常用的时间设置,你可以根据你的需求进行选择和修改:

需求场景 时间(秒) 计算方式 说明
会话 Cookie (浏览器关闭即失效) 0 - 这是最短的有效期,当浏览器关闭时,Cookie 会被自动删除,适合“记住我”功能未勾选的情况。
1 小时 3600 60 秒 * 60 分钟 适用于短期活动、临时验证码等。
12 小时 43200 3600 秒 * 12 小时 适用于需要用户在一天内保持登录状态的场景。
1 天 86400 3600 秒 * 24 小时 适用于普通的“记住我”功能,有效期一天。
7 天 (一周) 604800 86400 秒 * 7 天 适用于希望用户一周内免登录的场景。
30 天 (一个月) 2592000 86400 秒 * 30 天 DedeCMS 默认“记住我”功能通常使用这个时长。
90 天 (三个月) 7776000 86400 秒 * 90 天 较长的有效期,提升用户体验。
1 年 31536000 86400 秒 * 365 天 DedeCMS 的默认值,适用于长期不更换设备的用户。
永久 (不推荐) 2147483647 PHP_INT_MAX - 1 这是 32 位系统上的最大时间戳,虽然看起来是“永久”,但浏览器本身也可能有自己的清理策略。

修改示例:

假设你希望将“记住我”的有效期设置为 30 天,你需要将 $cfg_cookie_time 的值修改为 2592000

// 修改前
$cfg_cookie_time = 31536000; // 1年
// 修改后
$cfg_cookie_time = 2592000; // 30天

重要注意事项

  1. 修改后立即生效: 修改 config.cache.inc.php 文件后,新的 Cookie 有效期设置会立即对新登录的用户生效,已经存在的 Cookie 会按照它原有的有效期继续存在,直到被浏览器或服务器删除。

  2. 安全第一: 再次强调,请务必修改 $cfg_cookie_encode 的值,一个强加密密钥是防止 Cookie 被伪造和窃取的关键,你可以使用在线的随机字符串生成器来生成一个复杂的密钥。

  3. 区分 Cookie 类型: DedeCMS 中主要有两种 Cookie:

    • 用户登录状态 Cookie:由 $cfg_cookie_time 控制,这是你主要需要设置的。
    • 后台管理登录 Cookie:通常也使用此设置,但为了安全,后台的 Cookie 有效期可能设置得更短一些,如果你需要单独设置后台,可以检查后台模板或配置文件中是否有相关设置,但绝大多数情况下,后台也遵循全局的 $cfg_cookie_time
  4. 浏览器策略: Cookie 的最终行为还受到浏览器设置的影响,用户可以设置浏览器禁用 Cookie、清理 Cookie 等,这些都会覆盖你的服务器设置。

要在 DedeCMS 中设置 Cookie 的有效期,最直接、最有效的方法就是:

  1. 打开根目录下的 config.cache.inc.php 文件。
  2. 找到 $cfg_cookie_time 这一行。
  3. 将其值修改为你需要的秒数(30天就是 2592000)。
  4. (安全建议)同时修改 $cfg_cookie_encode 为一个复杂的随机字符串。
  5. 保存文件即可。

这个方法简单、直接,并且是 DedeCMS 官方支持的标准配置方式。

-- 展开阅读全文 --
头像
C语言如何实现dictionary功能?
« 上一篇 01-30
dede整合ecshop教程,具体步骤有哪些?
下一篇 » 01-30

相关文章

取消
微信二维码
支付宝二维码

目录[+]