【问题标题】:How to validate session with rest api post如何使用 rest api post 验证会话
【发布时间】:2015-08-26 13:22:35
【问题描述】:

我使用会话进行 API 登录,当移动应用程序使用登录功能时,它们实际上是访问 API。在 API 登录中,我进行了会话登录,因此当用户登录时,它会给出响应会话。检查下面的代码:

  public function user_post()
  {
    $data = array (
      'username' => $this->input->get_post('username'),
      'password' => sha1($this->input->get_post('password'))
    );

    $result = $this->login_m->user_check($data);
    if ($result ) {
       foreach ($result as $row ) {

        $sess_array = array(
                    'username' => $row->username,
                    'email'    => $row->email
                    );

        $this->session->set_userdata('logged', $sess_array);
        $this->response(array('success' => $this->session->userdata('logged') ));
      }
    } else {
      $this->response(array(404 => 'missing parameter'));
    }
  }

响应将如下所示:

  * {
  *  "success":
  *  {
  *    "username": "johndoe123",
  *    "email": "myemail@my.com"
  *   }
  * }

我的问题是,如何让会话验证 API 帖子?示例:

我有发布 API 来存储新数据。我想这种方式会很好,设置参数以使用 codeigniter 捕获会话名称 'logged' ,在会话中 'logged' 已经有电子邮件和用户名,因此将使用它作为条件来检查表是电子邮件和用户名在表中。

$this->session->has_userdata('logged')

因此移动应用需要将会话保存在其应用中以作为参数再次发送。代码如下所示:

$data = array(
            'idcardno'        => $this->input->get_post('idcardno'),
            'dateofbirth'       => $this->input->get_post('dateofbirth')
);

$addnewpolis =  $this->modelname->modelmethod($data2);

谢谢你们,

CMIIW

【问题讨论】:

  • 您不能在代码中通过外部 api 调用使用您想要的会话。您可以从登录中生成一个令牌并返回它。然后在您的手机进行下一次 api 调用时,发送此令牌以了解用户身份。
  • 为什么不能?如何提供响应 session_id 以便移动应用程序将其发回,并添加 1 个参数以检索 session_id 并提取它@zeflex
  • 好的,谢谢@zeflex 你有创建令牌的教程吗
  • 当有人登录 api 时,api 会发回一个身份验证令牌。每次调用 api 时,您也需要发送该身份验证令牌,以便 api 可以理解它。因此,您必须了解如何处理身份验证令牌。您已经告诉过方法。

标签: php codeigniter api session


【解决方案1】:

您不能在代码中使用您想要的会话与外部 api 调用。您可以从登录中生成一个令牌并返回它。然后在您手机的下一次 api 调用中,发送此令牌以了解用户身份。

为什么:Is it good to implement REST api using Sessions?

要生成令牌: https://www.google.com/search?q=generate%20token%20php&rct=j

然后在您的响应中返回它并将其保存在某个地方以便在下次调用时检索它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多