gpt4 book ai didi

php - 我应该如何处理在同一 session 中登录多个帐户的用户?

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:48 24 4
gpt4 key购买 nike

我想知道我应该如何允许用户在同一 session 中登录多个帐户。例如,用户应该能够打开一个选项卡,登录帐户 A,然后打开另一个选项卡登录帐户 B。我还想确保他在第一个选项卡中所做的任何事情只影响帐户 A,但所做的任何事情第二个选项卡上的影响帐户 B,没有其他影响。

这是我遇到问题的更具体的例子。比方说有一个JavaScript函数叫deleteList(listId)暴露在全局空间,也就是他可以在浏览器控制台调用这个函数。现在,这个用户以某种方式识别了账户 B 中存在的列表的 listId。然后,他打开了他作为账户 A 登录的选项卡,并使用该功能删除了账户 B 中的列表,尽管他在一个页面上他以帐户 A 身份登录的位置。

我知道这可能不是实际或真实的情况,但我想知道,为了学习,如何防止这种行为。也就是说,如果我允许用​​户登录多个帐户,即使在同一 session 中,我如何区分用户建立的每个连接(打开的选项卡/窗口)?

我可以用 PHP 中的每个唯一连接创建一个新 session 吗?因为我观察到,如果我打开多个选项卡,它们都被识别为同一个 session 。

最佳答案

据我所知,google 通过 url 中的参数来处理它。基本思想是在 $_SESSION 中存储一个用户数据表,而不是单个记录。

假设您在登录过程后保存在 $_SESSION - usernameuserip 中,而不是直接保存在 中$_SESSION,你添加一条记录到$_SESSION[]数组

$_SESSION['username'] = ...
$_SESSION['userip'] = ...

$_SESSION[] = array('username' => ...,'userip' => ...);

好的,在几次登录后,我们得到了一个由 usernameuserip 组成的数组。

第二件事是重写它会忽略第一部分的 url:

/(.*)/(.*) -> /$2?user=$1

从现在开始,我们指的是这样记录的用户 session :

$_SESSION[$_GET[用户]][...]

就是这样。当然你可以使用不同的重写规则,这只是一个想法示例。

关于php - 我应该如何处理在同一 session 中登录多个帐户的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18742803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com