如何使用RESTclient插件为RESTful API身份验证设置标头(Firefox)

3
我从Yii的示例中拿到了这段代码。
private function _checkAuth()
{
    // Check if we have the USERNAME and PASSWORD HTTP headers set?
    if(!(isset($_SERVER['HTTP_X_USERNAME']) and isset($_SERVER['HTTP_X_PASSWORD']))) {
        // Error: Unauthorized

        $this->_sendResponse(401);
    }
    $username = $_SERVER['HTTP_X_USERNAME'];
    $password = $_SERVER['HTTP_X_PASSWORD'];
    // Find the user
    $user=User::model()->find('LOWER(username)=?',array(strtolower($username)));
    $this->_sendResponse('200','$username');
    if($user===null) {
        // Error: Unauthorized
        $this->_sendResponse(401, 'Error: User Name is invalid');
    } 

    else if(!$user->validatePassword($password)) {
        // Error: Unauthorized
        $this->_sendResponse(401, 'Error: User Password is invalid');
    }
}

如何设置身份验证的头信息。如何在请求中设置HTTP_X_USERNAME和HTTP_X_PASSWORD;
对于RESTClient插件的名称、值和正文,如何设置?
提前致谢。
2个回答

6

你好,我已经通过以下服务器端代码解决了这个问题:设置HTTP请求头,就像你已经在客户端上做的一样。

private function _checkAuth()
    {
        // Check if we have the USERNAME and PASSWORD HTTP headers set?

        $headers = apache_request_headers();

        if(!(isset($headers['X_'.self::APPLICATION_ID.'_USERNAME']) and isset($headers['X_'.self::APPLICATION_ID.'_PASSWORD']))) {
            // Error: Unauthorized
            $this->_sendResponse(401);
        }

        $username = $headers['X_'.self::APPLICATION_ID.'_USERNAME'];
        $password = $headers['X_'.self::APPLICATION_ID.'_PASSWORD'];
}

4

我理解你的问题(与 yii论坛中的这篇文章相同)与RESTClient插件有关。要在RESTClient插件中设置标题,请使用“headers”功能:

  • 列表项
  • 菜单“Headers”
  • “Custom Header”
  • “Name”:X_PASSWORD
  • “Value”:emo

X_USERNAME也是一样。

希望对你有所帮助,

JM。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接