如何在Codeigniter 3 REST API中进行令牌认证



所以我刚刚在Codeigniter 3中完成了REST API的制作,我想用令牌进行身份验证,所以我使用了这个repohttps://github.com/ParitoshVaidya/CodeIgniter-JWT-Sample/tree/CI3中的JWT我的问题是,如何使我的API控制器要求每个请求都使用令牌?这是我的api控制器

function __construct($config = 'rest') {
parent::__construct($config);   
$this->load->helper(array('text','url'));
$this->load->model('Api_model');        
}

// GET ARTICLE
function index_get(){
$data = $this->Api_model->get_all_article();
return $this->response($data,200);
}

这是我的代币控制器

public function token_get()
{
$tokenData = array();
$tokenData['id'] = 1;        
$output['token'] = AUTHORIZATION::generateToken($tokenData);
$this->set_response($output, REST_Controller::HTTP_OK);
}

我建议将令牌逻辑移动到库中。然后,您将在所有控制器中都可以使用它,并且不必在api控制器中对控制器进行脏的安装。

添加类application\libraries\Token.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Token {
public function token_get()
{
$tokenData = array();
$tokenData['id'] = 1;        
$output['token'] = AUTHORIZATION::generateToken($tokenData);
$this->set_response($output, REST_Controller::HTTP_OK); // <--
}
}

您必须在库中提供此REST_Controller,或者相应地更改此逻辑。

然后在APIController中:

function token_get(){
$this->load->library('Token');
return $this->Token->token_get();
}
// GET ARTICLE
function index_get(){
$token = $this->token_get(); // added this line
$data = $this->Api_model->get_all_article();
return $this->response($data,200);
}

阅读更多关于CodeIgniter 中的库

相关内容

  • 没有找到相关文章

最新更新