当前位置: 首页 > 知识库问答 >
问题:

cakephp身份验证组件:每次登录都失败

邹星火
2023-03-14

在此之前,我已经成功地在cakePHP中开发了身份验证机制,但是这次我不知道是什么错误,每次我都会收到错误用户名/密码的提示。我使用过Auth组件,下面是详细信息:
型号名称:用户,许可证
示例用户信息:用户名:ahmad_agha密码:e10adc3949ba59abbe56e057f20f883e这是123456的md5,我不知道它在这种情况下是否重要,但我已经为我的控制器启用了管理路由
应用程序控制器。php:

class AppController extends Controller {

    public $components = array('DebugKit.Toolbar',
        'Auth' => array(
            'authenticate' => array(
                'Form' => array(
                    'passwordHasher' => array(
                        'className' => 'Simple',
                        'hashType' => 'sha256'
                    )
                )
            )),
        'Cookie');

    public function beforeFilter() {
        Security::setHash('md5');
        $this->Auth->loginRedirect = array('controller'
            => 'licenses', 'action' => 'index');
        $this->Auth->logoutRedirect = array('controller'
            => 'owners', 'action' => 'login');
        $this->Auth->allow('signup', 'confirm', 'login', 'logout', 'notauthorized', 'display');
        $this->Auth->authorize = array('controller');
        $this->set('loggedIn', $this->Auth->user('id'));
        $this->Auth->userScope = array('User.activated' => '1');
        parent::beforeFilter();
    }

    public function isAuthorized($user) {
        // Here is where we should verify the role and give access based on role

        return true;
    }

}

登录。ctp供用户查看

<div class="users form">
    <?php echo $this->Session->flash('auth'); ?>
    <?php echo md5('136112'); ?>
    <?php echo $this->Form->create('User', array('action' => 'login')); ?>
    <fieldset>
        <legend>
            <?php echo __('لطفا نام کاربری و کلمه عبور را وارد کنید'); ?>
        </legend>
        <?php
        echo $this->Form->input('username',array('label'=>'نام کاربری'));
        echo $this->Form->input('password',array('label'=>'کلمه عبور'));
        echo $this->Form->input('remember_me',array('label'=>'مرا به خاطر بسپار','type'=>'checkbox'));
        ?>
    </fieldset>
    <?php echo $this->Form->end(__('ورود')); ?>
</div>

下面是UsersController的login()操作。php:

function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            /* if (!empty($this->data)) {
              if (empty($this->data['User']['remember_me'])) {
              $this->Cookie->delete('User');
              } else {
              $cookie = array();
              $cookie['username'] = $this->data['User']
              ['username'];
              $cookie['password'] = $this->data['User']
              ['password'];
              $this->Cookie->write('User', $cookie, true, '+2 weeks');
              }
              unset($this->data['User']['remember_me']);
              } */
            $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash(__('Invalid username or password, try again'));
        }
    }
}

共有1个答案

容寒
2023-03-14

你说你的密码是md5散列,而在配置为Auth你已经设置了'hashType'=

您需要将hashType更改为md5。此外,简单地将密码的md5哈希保存在db中是行不通的,因为密码哈希器在哈希之前会将盐(在core.php中指定的Security.salt)附加到密码中。所以(新的SimplePasswordHasher)-

 类似资料:
  • 使用,https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat作为登录的参考,我在键入时似乎遇到了问题 我只能键入Auth的提供者,而不能键入,为什么会这样,它提示我键入社会提供者。

  • 我试图用注册时使用的凭证登录。Firebase已经有注册用户的条目。每次我试图登录它显示“登录不成功”,我没有看到任何代码问题。请帮帮忙。

  • 当使用Firebase身份验证匿名帐户时,它偶尔会在系统中创建一个新的用户ID,有时它会使用相同的用户ID。我真的希望每次都能创建相同的用户ID,这样匿名用户仍然可以在应用程序中维护相同的进度/数据。这实际上是我开始使用Firebase的原因。即使在重新启动应用程序等之后,我如何始终维护一个匿名帐户来保持相同的用户ID? 我希望用户每次以访客身份玩游戏时都能获得相同的ID。我看到有些应用程序在卸载

  • 本文向大家介绍firebase-authentication Google Plus登录身份验证,包括了firebase-authentication Google Plus登录身份验证的使用技巧和注意事项,需要的朋友参考一下 示例 使用Plus登录验证用户 onCreate onStart() 获取资料信息 使用Firebase进行身份验证, onActivityResult 登出      

  • 问题内容: 我正在开发Flask应用程序,并使用Flask-security进行用户身份验证(反过来又在下面使用Flask-login)。 我有一条需要身份验证的路由。我正在尝试编写一个单元测试,该测试对经过身份验证的用户返回适当的响应。 在单元测试中,我正在创建一个用户并以该用户身份登录,如下所示: 在测试内返回正确的用户。但是,请求的视图始终返回的。 所述路线定义为: 我可以肯定我只是不完全了

  • 我用Spring Security做了一个概念验证,以便使用PRE_AUTH_FILTER过滤器执行预认证。它工作正常,但我想知道如果这个过滤器不起作用,我是否可以重定向到登录页面,因为我得到HTTP 403。< br >我的意思是,如果初始请求的头中不包含SM_USER字段,我如何重定向到登录页面?我需要考虑这两种情况(当它包含字段- SM_USER -和不包含时),但我无法让它工作。有什么想法