gpt4 book ai didi

php - 如何在每个页面上验证用户 session

转载 作者:可可西里 更新时间:2023-11-01 00:35:36 25 4
gpt4 key购买 nike

我在 Codeigniter 中从事这个项目,我创建了登录和注册脚本,但我不知道如何在每个页面上验证用户。当用户登录要在 session 中存储哪些数据(Ci session user_data)时,我可以将其与每个页面上的数据库进行比较以确定 session 是否有效?我正在使用 codeigniter 的 session 类,并将值自动存储在数据库中。请帮助我,我被困在这里......

我的 session 是这样处理的:
1.每当任何用户访问我的网页时,他都会获得唯一的哈希 (md5) session ID,该 ID 会在加载页面时进行检查。如果它不生成新的,则不执行任何操作。它每 5 分钟更改一次。
2. 当用户登录要传递的数据时,我可以稍后将其与数据库进行比较(在每次加载页面时)

我不知道只存储 'is_logged' = 1 cookie 是否安全。我想检查每个服务器请求的 cookie。

最佳答案

登录成功后,您将创建一个

$this->session->set_userdata(array('authorized' => true));

然后,您可以创建一个身份验证库或模型方法,只要适合您就可以检查此 session 数据是否存在。

function is_logged()
{
return (bool)$this->session->userdata('authorized');
}

如果为 FALSE,则用户未登录,如果为 TRUE,则用户未登录。您可以在需要放置在身份验证后面的每个 Controller 方法上调用此函数,或者如果您需要它用于所有方法(例如管理面板),则可以在 controllr 的构造函数中调用此函数

例如,看看 CI 中的主流 Auth 库之一 Ion Auth 如何处理这个事情(使用 logged_in() 方法,它与我的示例代码中的功能相同。请记住 session 是加密的,如果存储在数据库中安全性更高); https://github.com/benedmunds/CodeIgniter-Ion-Auth/blob/2/libraries/Ion_auth.php

关于php - 如何在每个页面上验证用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855675/

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