我应该在哪里设置会话api和客户端

时间:2012-11-04 19:43:28

标签: ajax api codeigniter session

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

一个是客户,一个是api。对此的进一步改进将是

  1. 客户端将不再由CI制作,因为我没有使用它的功能。我只是想从一个mvc框架开始。
  2. 我的问题是我应该在哪里存储会话?在登录期间。

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

    1. 我从客户端创建了一个登录信息。这个会将登录凭据发送到 api ,然后验证客户端发送的这些信息,并返回消息/响应以获取登录凭据是否有效。
    2. 如果登录详细信息有效, api 会在其控制器中设置会话

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

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

1 个答案:

答案 0 :(得分:1)

你的概念是正确的。您想要在验证用户提供的有效凭据时设置会话用户数据。

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

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