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 アドオンの名前、値、本体は? よろしくお願いします

4

2 に答える 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'];
}
于 2014-03-14T12:31:58.593 に答える
4

あなたの質問 ( yii フォーラムのこの投稿と同じ) は RESTClient アドオンに関連していると理解しています。RESTClient アドオンでヘッダーを設定するには、「ヘッダー」機能を使用します。

  • リスト項目
  • メニュー「ヘッダー」
  • 「カスタムヘッダー」
  • 「名前」: X_PASSWORD
  • 「値」: エモ

X_USERNAME についても同様です。

HTH、

JM。

于 2012-05-07T07:43:57.513 に答える