0

このコードは、単純な投稿を行うか、リクエストを取得した場合にのみ機能します。

   public function authenticate(CakeRequest $request, CakeResponse $response) { 
        //some code - facebook
    }

しかし、私の場合、2つの選択肢があります。Facebookまたは通常のログイン(フォーム)からログインします。

現時点での問題は、クリックしてフォームを送信すると、認証機能も実行されることです。だから私の質問は:Postリクエストの名前をどのように検出できますか?何かのようなものisset($_POST['submitted_fb']

主な問題は、Postリクエストを実行すると常に関数が呼び出されることです。

4

1 に答える 1

1

認証は、ログインしていない場合、またはページを表示する権限がない場合にのみ行われます。

次のような検証を行います。

public function authenticate(CakeRequest $request, CakeResponse $response) { 
     if($request->data['loginType'] == 'facebook') {
         // Do facebook login
     } else {
         // Do form login
     }
}

ビューに非表示のフォームを追加します。

echo $this->Form->input('loginType', array('type' => 'hidden', 'value' => 'facebook'));
于 2012-08-25T21:08:21.647 に答える