Laravel 4 - Auth :: attempt()无效

时间:2014-05-04 04:58:04

标签: php authentication laravel laravel-4

我一直在搜索,但无法弄清楚为什么我的Auth :: attempt()会一直失败。请帮帮我。

这是我的表单:

<h2>Admin Login</h2>
<form method="post" action="<?php echo url('login-process') ?>">
    Username: <input type="text" name="username" /> <br/>
    Password: <input type="password" name="password" />
    <button type="submit">Login</button>
</form>

这是我的登录功能:

$username = Input::get('username');
$password = Input::get('password');

if (Auth::attempt(array('username' => $username, 'password' => $password))) {

        echo "success!"; //just for testing purposes
} else {
        echo "fail!";

我的User.php是默认的。看起来像这样:     

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {


/**
 * The database table used by the model.
 *
 * @var string
 */
protected $table = 'users';

/**
 * The attributes excluded from the model's JSON form.
 *
 * @var array
 */
protected $hidden = array('password');

/**
 * Get the unique identifier for the user.
 *
 * @return mixed
 */
public function getAuthIdentifier()
{
    return $this->getKey();
}

/**
 * Get the password for the user.
 *
 * @return string
 */
public function getAuthPassword()
{
    return $this->password;
}

/**
 * Get the e-mail address where password reminders are sent.
 *
 * @return string
 */
public function getReminderEmail()
{
    return $this->email;
}

}

这就是我保存新用户信息的方式(使用Eloquent):

$user = new User();
$user->username = Input::get('username');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();

但是当用户使用正确的凭据登录时,我一直都会失败。几天来一直在研究这个问题,并且无法帮助,但我觉得我错过了一些微不足道的东西。伸出援手好吗?谢谢!

1 个答案:

答案 0 :(得分:0)

如果你有更多的错误,这将更容易,错误消息或其他东西。但以下是我如何记录我的用户。自最新安装的Laravel 4.1.26以来,新方法给了我错误。

它不在以下部分,但我认为它的格式有点清晰。它可能是新记忆标记的方法。请提供更多错误信息。你有Laravel错误吗?您拥有的回声将不会显示,因为它不会保持该屏幕。也许使用return var_dump('Success')这将打破这个过程。

$credentials = [
   "username" => Input::get("username"),
   "password" => Input::get("password")
];
if(Auth::attempt($credentials)) {
   return true;
} else {
   return false;
}

User模型中实现这些方法是件好事,这些方法自4.1.26起是必要的:

public function getRememberToken() {
   return $this->remember_token;
}


public function setRememberToken($value) {
   $this->remember_token = $value;
}


public function getRememberTokenName() {
   return 'remember_token';
}