codeigniter API -我如何检查每个POST的某个值


codeigniter API - how can I check every POST for a certain value

我刚刚问了这个问题,得到了一个相当明显和简单的答案(一如既往地把事情复杂化!)

建议的解决方案是,每次我联系我自己的API时,我都会发送一个"令牌"- 128位。

相反,我认为我可以做一个检查,看看用户是否首先登录(所以我自己的网站不需要每次授权),如果没有检查一个"令牌"的帖子

我现在要做的是检查每个传入的POST到我的API的令牌。

。使用构造函数来完成此操作,而不必为所有控制器中的每个方法添加一个'has_token'方法。

是否有一种方法可以在构造函数中做到这一点,以便任何请求都将检查这个令牌?

public function __construct()
   {
        parent::__construct();
        if (!$this->authentication->logged_in())
        {
             if(!POST_DATA['token'] == "tokenValue"){ //PSEUDO CODE HERE FOR WHAT I WANT TO BE ABLE TO DO
                       redirect('auth/login', 'refresh');
                     } 
        }
  }

基本上是否有一种方法可以拦截来自未登录用户的所有帖子数据,并在继续之前检查帖子是否有一个'令牌'集->如果没有,我会返回错误'无效令牌'或'令牌丢失'(我知道上面的代码不这样做!)

这样对吗?检查用户是否登录,如果没有,检查$_POST中的令牌,然后检查令牌是否有效?

if ( ! $this->auth->logged_in() )
{
    if ( $this->input->post('token') )
    {
        if ( ! $this->token_model->check_token($this->input->post('token')) )
        {
            // Invalid token....
        }
    }
    else
    {
        // No token found
    }
}