2012-01-18 6 views
0

この質問は最近私がStack Overflowで尋ねた質問に似ていますが、基本的には自分のコードではなくCakePHPブックのコードを使用しています何かがうまくいかない。CakePHP v2.0の電子メールアドレスで認証する

基本的な考え方は、ユーザーが自分のメールアドレスとCakeのバージョン2.0のユーザー名を使ってログインできるようにすることです。しかし、それは常に詳細が間違っていることを返しますが、私はまだユーザー名でログインすることができますので、基本的にAppControllerのオーバーライドは何も変更されません...ログインするために両方のフィールドを許可する方法を理解しようとしています。

ここで元の投稿で議論したように:Login with email address or username in CakePHP v2.0 @nIcOは、双方のフィールドでPontentiallyに働く可能性のあるものをまとめましたが、ここで説明されている問題は機能しません。

アイデア?誰でもバージョン2.0で動作する電子メールログインを得ました。

// AppController 

public $components = array(
    'Auth' => array(
     'loginAction' => array(
      'controller' => 'users', 
      'action' => 'login' 
     ), 
     'authenticate' => array(
      'Form' => array(
       'fields' => array('username' => 'email') 
      ) 
     ) 
    ) 
); 

// UsersController 

public function login() { 
    if ($this->request->is('post')) { 
     if ($this->Auth->login()) { 
      return $this->redirect($this->Auth->redirect()); 
     } else { 
      $this->Session->setFlash(__('Username or password is incorrect'), 'default', array(), 'auth'); 
     } 
    } 
} 
+0

ログインビューとユーザーモデルはどのように見えますか?あなたもそれを投稿できますか? – Oldskool

+0

これは正確にここに投稿されています:http://book.cakephp.org/2.0/ja/tutorials-and-examples/blog-auth-example/auth.html私はユーザー名でログインできますが、電子メールアドレス。 – Cameron

答えて

2

idが(ないのAppController中)がUserControllerにこれを追加しましたが、これは、ユーザー名として電子メールのために私のために働いたものの:

 

public $components = array('Auth'); 

//beforeFilter in UsersController 
function beforeFilter() { 
    parent::beforeFilter(); 
     $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login'); 
     $this->Auth->authenticate = array(
      'Form' => array(    
       'fields' => array('username' => 'email') 
      ) 
     ); 
} 
 

は、これが最善であるいくつかの方法

+0

電子メールアドレスで1.3のようなユーザーが見つからない場合、または電子メールが失敗した場合に実際にフィールドを再度変更してここで説明したようなことをしなければならない場合、そのユーザー名を使用する自動フォールバックはありますか?/8874448/login-with-email-address-or-username-in-cakephp-v2-0/8877084 – Cameron

+0

まあ、いいえ、私は2つのフィールドをユーザ名に使うことはできません。追加したリンクに提供されたそうした解決策は、認証パラメータを再構築するために役立つ可能性があります。 –

1

にお役に立てば幸いです実装私が見つかりました:http://bin.cakephp.org/view/1831131032

私はいくつかのロジックがモデルに移動された方法が好きですdはコントローラーロジックをクリアし、MVCを増やします。うまくいけば、これは他人を助けるでしょう。

+0

私はそのビンを作った:D – Dunhamzzz

関連する問題