2017-05-21 5 views
0

私は一般的にCakePHPとOOPを初めて使いました。私はブログを作成する方法を私に教え公式サイトからこのチュートリアルを次のようだ:https://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.htmlCakePHP:IDのみを使用したログイン(ユーザ名+パスワードではない)

問題がある、私はにできるようにしたいのではなく、ユーザーが唯一のIDフィールドを使用してログインします古典的なユーザー名 - パスワードのデュオ。

しかし、私はそれを行う方法を見つけることができません...私が見たものから、認証コンポーネントは常に2つのフィールドが必要です。私はどのように進めるべきですか?道に迷いました。

おかげ

答えて

0

は、私は良いアイデアのではないと思いますが、これを行う方法は簡単です。

使用したバージョン:CakePHPのv3.4.5

テンプレート\ Users \ユーザーlogin.ctp:

<form method="post" action="<?= $this->Url->build(['controller'=>'Users', 'action' => 'login']) ?>"> 
    <input type="text" name="id" value=""> 
    <button type="submit">login</button> 
</form> 

コントローラー\ UsersController.php:

public function login() 
{ 
    if ($this->request->is('post')) { 
     $user = $this->Users->findById($this->request->getData()['id'])->first(); 
     if ($user) { 
      $this->Auth->setUser($user); 
      return $this->redirect(['controller' => 'MyController', 'action' => 'MyAction']); 
     } 
     $this->Flash->error('Id not found.'); 
     return $this->redirect($this->referer()); 
    } 
}  

いけないのAppControllerでAuthコンポーネントをロードすることを忘れますhereと記載されている権限のないユーザーのログイン方法を許可します。

+0

これは完璧です!どうもありがとうございました。 :) – Tom

関連する問題