1

Facebook認証をCakephp2.2.4アプリに統合しようとしていますが、Facebook認証が完了したら、ユーザーを作成して手動でログインしようとしていますが、以下のコードで認証セッションが作成されていることがわかります。 $ this-> Auth-> user()にはすべてのデータが含まれています。ユーザーがアプリにログインしていません。つまり、アプリの他の機能にアクセスできません。

$user = $this->User->findById($user_id);
        $this->Auth->login($user);

これは私が手動でログインするために使用しているものであり、保存されたユーザーにはユーザー名とパスワードが含まれていません

これは私のAppController.phpにあります

class AppController extends Controller {
public $components = array(
'Session',
'Auth'=>array(
     'loginRedirect'=>array('controller'=>'Users','action'=>'dashboard'),
     'logoutRedirect'=>array('controller'=>'Users','action'=>'login'),
     'authError'=>'You can\'t access that page',
     'authenticate' => array(
        'Form' => array(
            'fields' => array('username' => 'email')
        ),'Basic'),
     'authorize'=>array('controller')
    ),
'RequestHandler'    
);

public $helpers = array('Js' => array('Jquery'),'Html','Form');

public function isAuthorized($user){
    return TRUE ;
}

public function beforeFilter(){

    // $this->Auth->allow('index','view');
    // $this->set('logged_in',$this->Auth->loggedIn());
    // $this->set('current_user',$this->Auth->user());
}

}

4

4 に答える 4

2

試す:

$this->Auth->login($user['User']);
于 2013-01-04T01:41:55.787 に答える
0

これはcakephpアプリとは何の関係もありませんでしたが、Facebookに使用していたプラグインはデータを投稿しませんでした

于 2013-01-04T12:22:59.880 に答える
0

おそらく、Authコンポーネントは、電子メールではなく、認証のためにユーザー名フィールドを参照します。ユーザー名に変更してみてください。

于 2013-01-04T14:20:54.187 に答える
0

FacebookoAuthを認証コンポーネントの認証オブジェクトとして使用するプラグインを開発しています。サーバー側のFacebookログインを使用するビルド済みのソリューションが必要な場合は、私のWebサイトを確認してください:http://marianofino.github.com/Facebook-Plugin-for-CakePHP/

于 2013-01-11T21:18:51.553 に答える