如何创建laravel 5.5自定义身份验证?

时间:2017-11-21 12:56:35

标签: laravel laravel-5.5 custom-authentication

我在Laravel 5.5中创建了一个自定义Auth控制器,其中包含“store”操作,然后我使用返回$auth->attempt()的{​​{1}}方法对其进行了身份验证。到目前为止,当我尝试使用面板路由的“auth”中间件时问题就开始了,身份验证中间件总是重定向到登录操作。

路线:

true

控制器:


    Route::group(['middleware' => ['auth', 'web']], function () {
        Route::get('/painel/', ['as' => 'painel.dashboard', 'uses' => 'DashboardController@index']);
    });

    Route::get('/login', ['middleware' => 'web', 'as' => 'login', 'uses' => 'AuthController@index']);

    Route::group(['middleware' => ['web']], function () {
        Route::get('/painel/auth', ['as' => 'painel.auth.index', 'uses' => 'AuthController@index']);
        Route::post('/painel/auth/store', ['as' => 'painel.auth.store', 'uses' => 'AuthController@store']);
    });

auth.index:


    namespace App\Applications\Painel\Http\Controllers;

    use Illuminate\Http\Request;
    use Illuminate\Contracts\Auth\Guard;
    use Illuminate\Auth\AuthManager as Auth;

    class AuthController extends BaseController
    {

        /**
         * @var Guard
         */
        private $auth;

        public function __construct(Guard $auth)
        {
            $this->auth = $auth;
        }

        public function index()
        {
            return view('painel::auth.index');
        }

        public function store(Request $request)
        {
            $data = $request->only(['email', 'password']);

            // This condition always return true, but after Laravel return to action index...
            if ($this->auth->attempt($data)) {
                return redirect()->route('painel.dashboard');
            }

            return redirect()->back();
        }
    }

1 个答案:

答案 0 :(得分:-2)

尝试方法需要$ request作为参数,或者您需要在$ data中包含记忆标记。我想,警卫缺少记忆代币。