【发布时间】: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