2017-05-21 108 views
0

我是CakePHP和OOP的新手。我下面从官方网站上,教我如何做一个博客这个教程:https://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.htmlCakePHP:仅使用ID登录(不是用户名+密码)

问题是,我希望能够使用户登录和使用只有一个ID字段,而不是经典的用户名 - 密码二重奏。

但是我找不到办法做到这一点......从我所看到的,Auth Component总是需要两个字段。我应该如何继续?我迷路了。

谢谢

回答

0

我认为它不是一个好主意,但方法很简单。

使用的版本:CakePHP的v3.4.5

模板\用户\ 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中加载AuthComponent并允许非授权用户使用登录方法 - 描述内容为here

+0

完美!非常感谢你。 :) – Tom

相关问题