0

応答で ajax からリクエストを行うと、ユーザーがログインしていないときに 401 (Not Authorized) ステータスを送信する必要があります。

MVC フレームワークで OOP コンセプトを使用しています。だから私の構築関数は次のとおりです

function __construct() {
        parent::__construct();

        $request = apache_request_headers();
        if(isset($request['X-Requested-With']) && $request['X-Requested-With'] == 'XMLHttpRequest')
        {
            $this->user = General::getUser(false);
        }
        else
        {
            $this->user = General::getUser();
        }
}

General::getUser();セッションをチェックし、ログインしたユーザー情報を返す別のクラスで定義されています。

今、私は ajax リクエストを作成し、ユーザーがログインしていないときに、http ステータス 401 を送信したいと考えています。

それで、これを行うために私が従う必要がある次の手順は何ですか。呼び出し元の関数を__constructチェックインして結果をエコーし​​たくないので、それを返したいと思います。$this->user

私が何か間違っているかどうかを提案して教えてください。

4

2 に答える 2

1
class HomeController {
   function __construct() {
        parent::__construct();

        $request = apache_request_headers();
        if(isset($request['X-Requested-With']) && $request['X-Requested-With'] == 'XMLHttpRequest')
        {
            $this->user = General::getUser(false);
        }
        else
        {
            $this->user = General::getUser();
        }

        Authentication::authorize($this->user);
   }
}

class Authentication {
   public static function authorize($user) {
      if(! $user->isLoggedIn()) {
          Request::unauthorized();
      }

      return true;
   }
}

class Request {
   public static function unauthorized() {
       header("HTTP/1.1 401 Unauthorized");
       die();
   }
}

Request::unauthorized() 内でいくつかのビューをレンダリングしたり、認証ページへのリダイレクトを実行したりすることもできます。

于 2015-05-08T11:39:21.513 に答える
1

一番やりやすいでしょう

header("HTTP/1.1 401 Unauthorized");
exit;
于 2015-05-08T11:32:26.100 に答える