Laravel Auth::attempt() 未实际登录

Laravel Auth::attempt() not actually login

当我尝试登录时,它只是重定向到具有任何值的 "admin" 页面。我做了 google 中所有可能的尝试。但仍然没有运气。我非常需要帮助。我的代码如下:

控制器:LoginController.php

<?php 

class LoginController extends BaseController {


    public function doLogin()
    {

        $rules = ['username'=>'required','password'=>'required'];

        $credentials = array(
          'username' => Input::get('username'),
          'password' => Input::get('password')
        );


        $validation = Validator::make($credentials, $rules);

        if($validation->fails()){

            return Redirect::back()
            ->withInput()
            ->withErrors($validation);

        }
        else{

            Auth::attempt($credentials);
            return Redirect::intended('admin');
        }

    }

    public function doLogOut()
    {
        Auth::logout();

        return Redirect::to('/login');
    }

}

型号:User.php

<?php

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

class User extends Eloquent implements UserInterface, RemindableInterface {

    use UserTrait, RemindableTrait;

    /**
     * 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', 'remember_token');

}

UserTableSeeder:

<?php

class UserTableSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $vader = DB::table('users')->insert([
                'username'   => 'admin',
                'password'   => Hash::make('admin'),
                'created_at' => new DateTime(),
                'updated_at' => new DateTime()
            ]);
    }

}

路线:

Route::post('login','LoginController@doLogIn');

让我们仔细看看这些行:

else {
    Auth::attempt($credentials);
    return Redirect::intended('admin');
}

您在此代码段中所做的是

  1. 您尝试让用户登录。
  2. 然后你重定向,不管它是否有效。

如果您想确保用户确实登录,您应该将尝试包含在 if 子句中。