0

外部カスタムコードから作成されたCakePHPセッションを介してアプリにログインしようとしています。しかし、これを正確に行う方法を理解することはできません。私はフォームでそれをしたくありません。credentialsPHP

例: 私はサイト A にログインしており、私のCakePHPアプリはサイト B です (両方とも同じサーバーでホストされていますが、異なるフォルダーにあります)。

username/passwordセットをサイト A から B に取得しました。

しかし、サイトBでこれを使用する方法がわかりません。

同じことについて何か考えはありますか?

ありがとう。

注: さて、私は CakePHP セッションでユーザー名を受け取っています。$this->Session->read('Username');

$this->Auth->login($this->Session->read('Username')); $this->Auth->user(); を介してユーザーを取得できるように、Auth を介してログインしたいと考えています。

それを手伝ってもらえますか?私は AppController でこれを行っています。メソッド: beforeFilter() 、 _checksession()

4

3 に答える 3

0

あなたが言うように、すでにユーザー名/パスワードをセッションに持っている場合は、Auth が自動的に検証しようとする User モデルのデータ配列を作成してみてください。

// Construct model data array like what AuthComponent would usually expect
$userData = array(
    'User' => array(
        'username' => $this->Session->read('username'), // Use your stored values (change as appropriate)
        'password' => $this->Session->read('password')
    )
);

// Attempt to authenticate the user
if ($this->Auth->login($userData)) {

    // Login worked

} else {

    // Login failed

}
于 2013-07-10T15:36:30.623 に答える
0

ありがとうございました。パスワードを送信するのではなく、ユーザー名のみを送信し、適切な検証の後、次のようにログインしようとする解決策を得ました。

$username = $this->Session->read('userName');
//validation
$user = $this->User->find('first',array('conditions'=>array('username'=>"$username")));

$this->Session->write('Auth',$user);

//now I can use: 
$this->Auth->login()

以前は、間違ったインデックスでセッションを保存していました。

于 2013-07-12T12:38:58.600 に答える