0

由于我正在构建一个简单的游戏,因此我需要用户即使离开也能保持登录状态。出于安全原因,最好将 cookie 存储在我自己的服务器上,这样用户就无法更改它们。这可能吗?

我将所有内容存储在会话变量中,如果用户正在战斗,如果用户正在做一些耗时的事情等。他们在完成上一个任务之前无法访问我网站上的其他点!这就是为什么我需要将这些信息存储在我的会话 cookie 中!

如果这是不可能的,我想我只需要将这些东西存储在我的数据库中,但这将是我手上大量额外的数据库操作......

我什至可以将此类数据保存在 cookie 中,以便当用户离开并返回时,会话仍会将变量设置为以前的数据?

4

4 回答 4

4

根据定义,Cookie 是客户端。因此,要从表面上回答您的问题,您不能将它们存储在服务器上。

但是,您可以将会话信息存储在服务器上。如果您需要它比典型会话持续更长的时间,那么数据库(恐怕)将是最好的选择。

于 2013-08-06T12:22:52.517 回答
1

这是不可能的。会话 cookie 的想法是在浏览器中设置一个唯一的会话 id,以在后端识别他,您存储会话数据的位置(如您提到的变量)。有关其中的一些基础知识,请参阅stackoverflow 问题。

更新:关于“数据在会话中存储多长时间?”

这取决于你。您可以根据需要设置会话超时,然后销毁会话。通常,这可能是几分钟到 30 天之间的所有时间。在这段时间之后,您没有看到具有特定会话 ID 的用户,会话将被删除。如果用户返回,则会话到期前的时间再次从零开始。

于 2013-08-06T12:26:13.400 回答
0

如果用户没有清除他们的 cookie 并且它们还没有过期,那么会话将在您离开它的地方拾取(也假设没有清理 /tmp 中的会话)。否则,它永远不会是。他们继续前进。他们变了,不是吗?

于 2013-08-06T12:24:34.557 回答
0

由于我正在构建一个简单的游戏,因此我需要用户即使离开也保持登录状态

我认为这句话没有逻辑。
如果用户离开,则不存在会话。

你可能需要别的东西。

于 2013-08-06T12:29:00.147 回答