【问题标题】:Laravel 4.2 Auth::attempt failureLaravel 4.2 Auth::attempt 失败
【发布时间】:2015-08-28 11:21:12
【问题描述】:

问题: 每次我尝试 Auth::attempt() 时都返回 false

myUsersModel.php

<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;

class myUsersModel extends Eloquent implements UserInterface, RemindableInterface{

use UserTrait, RemindableTrait;

protected $table = 'myUsersTable';
protected $primaryKey = 'primary_key';
public $timestamps = false;
protected $increments = 'primary_key';
protected $fillable = array(
   'user',           //this is like username
   'password',       //this one contains hashed password values
   'userlevel',
   'remember_token',
);
   protected $hidden = array('password');
}

myController.php

$attemptData = array(
    'user' => Input::get('textBoxInput'),
    'password' => Input::get('passwordInput')
);
Auth::attempt($attemptData);
return var_dump(Auth::check());

auth.php

'driver' => 'eloquent',
'model' => 'myUsersModel',
'table' => 'myUsersTable'

其他说明:
1. 我的记忆令牌可以为空varchar(100)
2. 我的密码字段是varchar(60)
3. 我可以通过dd(Input:all())获取表单值
4. 在我的数据库中,我有散列和非散列密码值,每个用户都不同。但两者都无法登录。

谢谢。

【问题讨论】:

  • 是 $primaryKey 的 'id',因为默认情况下 laravel 假定 'id' 是用户标识符。
  • @yangqi,是的。我解决了这个问题,现在我来分享一下。

标签: php laravel authentication


【解决方案1】:

我还没有发布我的整个定制模型和控制器,但是我的模型有一个类似'user_e_mail' 的电子邮件字段,并且满足我的身份验证规则的要求,需要检查。

事情是这样的,我必须在 myUsersModel 模型下覆盖 getReminderEmail() 方法。

public function getReminderEmail() {
    return $this->user_e_mail;
}

所以现在我可以进行身份​​验证了。

谢谢。

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 2014-10-11
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2014-05-22
    • 2013-07-12
    • 2015-03-27
    • 2023-03-05
    相关资源
    最近更新 更多