【发布时间】:2020-01-02 10:30:11
【问题描述】:
我在尝试创建的 API 时遇到问题。当我在 Postman 中测试它时,它似乎是错误的,即使我的用户名和密码是正确的。你能找出我的代码的问题吗? 非常感谢您的帮助。
Auth_admin.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';
class Auth_admin extends REST_Controller
{
public function signin_post()
{
$this->load->model('model_admin', 'admin');
$params = array(
'username' => $this->post('username'),
'password' => md5($this->post('password'))
);
$result = $this->admin->admin_check($params);
if ($result){
if ($result->level == "admin"){
$response = array(
"status" => true,
"message" => "Authentication seccessfully",
"auth" => array(
"username" => $result->username
)
);
$this->set_response($response, REST_Controller::HTTP_OK);
}else{
$response = array(
"status" => false,
"message" => "This features does'nt exist for your Account"
);
$this->set_response($response, REST_Controller::HTTP_OK);
}
}
}
}
Model_admin.php
<?php
class Model_admin extends CI_Model
{
var $tablename;
public function __construct()
{
parent::__construct();
$this->tablename = "m_admin";
}
public function admin_check($data = array())
{
$params = array(
'username' => $data['username'],
'password' => $data['password'],
);
$this->db->where($params);
$query = $this->db->get($this->tablename);
return $query->row();
}
}
【问题讨论】:
-
请不要自己滚动密码散列,特别是不要使用 MD5() 或 SHA1()。 PHP 提供了
password_hash()和password_verify(),为了您的用户的安全,请使用它们。我相信 Codeigniter 也提供了一些东西来正确地做到这一点 -
从img我可以看到你正在调用不存在的Auth_admin类的索引函数
-
看来我忘记了什么。谢谢您的帮助。我很感激。
标签: php rest api codeigniter