这是情况,我已经设置了2个codeigniter安装。
一个是客户,一个是api。对此的进一步改进将是
我的问题是我应该在哪里存储会话?在登录期间。
以下是我的表现,但我认为我做错了。
如果登录详细信息有效, api 会在其控制器中设置会话
if(true) {
$this->session->set_userdata($array);
}
这是我创建的login_controller
。这是为api的客户端设置会话的正确方法吗?
答案 0 :(得分:1)
你的概念是正确的。您仅想要在验证用户提供的有效凭据时设置会话用户数据。
也就是说,确保您使用加密的Cookie,如果您正在处理敏感数据,请将会话数据存储在数据库中。将它存储在数据库中会导致一些奇怪的怪癖,说明会话在CodeIgniter中的工作方式(主要是flashdata),但积极识别的额外好处可能是值得的。
通过将会话数据存储在数据库中,您可以更积极地验证用户是否是他们声称的用户(就会话ID等而言)。原因是会话数据仅存储在数据库中,而不存储在会话cookie中(仅包含会话ID和其他一些信息)。这样,即使有人设法解密cookie,他们也无法修改他们的用户数据以假装成其他人,就像你可能只能使用cookie一样。