1

codeigniter-restserver コードを既存の CI3 プロジェクトに統合しようとしています。認証を過ぎて機能する資格情報を取得する方法がわかりません。

スタックしているコードは次のとおりです (REST_Controller.php):

    if (strcasecmp($digest['response'], $valid_response) !== 0)
    {
        // Display an error response
        $this->response([
                $this->config->item('rest_status_field_name') => "false",
                $this->config->item('rest_message_field_name') => $this->lang->line('text_rest_invalid_credentials')
            ], self::HTTP_UNAUTHORIZED);
    }

rest.php //設定

$config['rest_auth'] = 'digest';
$config['auth_source'] = 'library';
$config['auth_library_class'] = 'auth_model';
$config['auth_library_function'] = 'validate_user';

上記のクラス (データベースからの認証):

function validate_user($username='',$password=null)
    {
        if($username!=''&&$password!=null)
        {
            $this->db->select('md5');
            $this->db->where('username', $username);
            $query = $this->db->get('user');
            $result = $query->result_array();
            return $result[0]['md5']; // stored as md5(username:realm:password);
        }
        return false;
    }

レスポンス json:

{"status":"false","error":"Invalid credentials"}

郵便配達員を使用して、ヘッダーの設定方法を次に示します。

Digest username="user", realm="REST API", nonce="", uri="/restapi/dashboard", response="928e85782ff2322fd2232ebbac4f058f", opaque=""
4

2 に答える 2

1

qop=auth必ず authoに含め てください

于 2017-08-17T08:15:44.500 に答える