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

时间:2014-06-19 15:20:59

标签: php codeigniter post

我刚刚问过THIS QUESTION并得到了一个相当明显而简单的答案(过于复杂的事情!)

建议的解决方案说每次我联系自己的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');
                     } 

        }
  }

基本上是否有办法拦截来自未登录用户的所有帖子数据,并检查该帖子是否有“令牌”#39;在继续之前设置 - >如果不是,我将返回错误'无效令牌'或者'令牌丢失' (我知道上面的代码不会这样做!)

提前致谢。

1 个答案:

答案 0 :(得分:1)

这是对的吗?检查用户是否已登录,如果用户未登录,请检查$ _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
    }
}