【问题标题】:How to make Restful API in Codeigniter?如何在 Codeigniter 中制作 Restful API?
【发布时间】: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


【解决方案1】:

您必须在控制器名称之后传递函数名称。

喜欢你的路径:http://192.168.122.1/project_name/auth_admin/signin 它会起作用。

如果这不起作用,请添加index.php 并检查它,因为这取决于您如何设置项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 2019-12-19
    • 2012-10-26
    • 2015-01-23
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多