gpt4 book ai didi

Cakephp 3.0 登录

转载 作者:行者123 更新时间:2023-12-02 04:50:06 24 4
gpt4 key购买 nike

我的登录系统出现问题。我设法在我的数据库中注册了我的用户,但每当我尝试登录时,它一直提示“电子邮件或密码无效,请重试”。

这是我的模型:

    <?php
namespace App\Model\Table;

use Cake\ORM\Table;
use Cake\Validation\Validator;

class UsersTable extends Table
{

public function validationDefault(Validator $validator)
{
return $validator
->notEmpty('email', 'A email is required')
->add('email', 'valid' , ['rule'=> 'email'])
->add('email', [
'unique' => ['rule' => 'validateUnique', 'provider' => 'table']
])
->requirePresence('email','create')

->notEmpty('password', 'A password is required')
->notEmpty('role', 'A role is required')
->add('role', 'inList', [
'rule' => ['inList', ['admin', 'author']],
'message' => 'Please enter a valid role'
]);
}

}

我的 Controller :

       <?php
namespace App\Controller;

use App\Controller\AppController;
use Cake\Event\Event;
use Cake\Network\Exception\NotFoundException;

class UsersController extends AppController
{

public function beforeFilter(Event $event)
{
parent::beforeFilter($event);

$this->Auth->allow(['add', 'logout']);
}

public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
}
$this->Flash->error(__('Invalid email or password, try again'));
}
}

public function logout()
{
return $this->redirect($this->Auth->logout());
}

public function index()
{
$this->set('users', $this->Users->find('all'));
}

public function view($id)
{
if (!$id) {
throw new NotFoundException(__('Invalid user'));
}

$user = $this->Users->get($id);
$this->set(compact('user'));
}

public function add()
{
$user = $this->Users->newEntity();
if ($this->request->is('post')) {
$user = $this->Users->patchEntity($user, $this->request->data);
if ($this->Users->save($user)) {
$this->Flash->success(__('The user has been saved.'));
return $this->redirect(['action' => 'add']);
}
$this->Flash->error(__('Email already existed.'));
}
$this->set('user', $user);
}

}

应用程序 Controller :

    <?php

namespace App\Controller;

use Cake\Controller\Controller;
use Cake\Event\Event;


class AppController extends Controller
{


public function initialize()
{
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
'loginRedirect' => [
'controller' => 'Articles',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'display',
'home'
]
]);
}

public function isAuthorized($user)
{

if (isset($user['role']) && $user['role'] === 'admin') {
return true;
}


return false;
}

public function beforeFilter(Event $event)
{
$this->Auth->allow(['index', 'view', 'display']);
}

}

登录.ctp

 <div class="users form">
<?= $this->Flash->render('auth') ?>
<?= $this->Form->create() ?>
<fieldset>
<legend><?= __('Please enter your username and password') ?></legend>
<?= $this->Form->input('email') ?>
<?= $this->Form->input('password') ?>
</fieldset>
<?= $this->Form->button(__('Login')); ?>
<?= $this->Form->end() ?>
</div>

最佳答案

我认为问题出在AppController


快速浏览一下:CookBook CakePHP 3.0 Example Bookmarker Part 1

登录部分在这里:CookBook CakePHP 3.0 Example Bookmarker Part 2

找到与你的项目的相似之处,尝试做类比,联系。

关于Cakephp 3.0 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29555936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com