1

这是情况,我已经设置了2个codeigniter安装。

一个是客户端,一个是 api。这将进一步改进

  1. 客户端将不再由 CI 制作,因为我没有使用它的功能。我只是想从一个 mvc 框架开始。

我的问题是我应该在哪里存储会话?在登录期间。

以下是我的做法,但我认为我做错了。

  1. 我从客户端创建了一个登录。这个将登录凭据发送到api ,然后验证客户端发送的这些信息,无论登录凭据是否有效,都会返回一条消息/响应。

如果登录详细信息有效,api将在其控制器中设置一个会话,如下所示

if(true) {
    $this->session->set_userdata($array);
}

这是在login_controller我创建的。这是为api客户端设置会话的正确方法吗?

4

1 回答 1

1

你的概念是对的。您只想在验证用户提供的有效凭据后设置会话用户数据。

也就是说,请确保您使用的是加密的 cookie,如果您正在处理敏感数据,请将会话数据存储在数据库中。将其存储在数据库中会导致 CodeIgniter 中会话的工作方式出现一些奇怪的问题(主要是使用 flashdata),但肯定识别的额外好处可能是值得的。

通过将会话数据存储在数据库中,您可以更积极地验证用户是他们声称的身份(根据会话 ID 等)。原因是会话数据只存储在数据库中,而不是会话 cookie(它只保存会话 ID 和其他一些信息)。这样,即使有人确实设法解密了 cookie,他们也无法修改他们的用户数据以假装是其他人,就像您可以使用仅使用 cookie 的方法一样。

于 2012-11-05T00:09:26.070 回答