Laravel Guest中间件和用户身份验证

时间:2017-11-22 07:35:23

标签: laravel

我刚刚使用访客中间件创建了一个简单的登录,允许用户一次访问一个帐户,但我只是担心这是否是正确的方法。

/** Routes **/        
Route::group(['middleware' => 'guest'], function () {

        Route::get('/', 'LoginController@index')->name('login');
        Route::post('/', 'LoginController@post')->name('login.post');

    });



/** login.post controller **/
    public function post(Request $request){
            $this->rules($request);

            $rules = array(
                'username' => $request->username,
                'password' => $request->password,
            );

            if(Auth::attempt($rules)) {
                if(Auth::user()->is_active == true){
                /** IF THE USER IS CURRECTLY LOGIN **/
                 if(Auth::user()->is_login == true){
                   Auth::logout();
                   Session::flash('multilog', 'Your account is log-in to another device!!');
                   return redirect('/')->withInput();
                 }
                $user = user::find(Auth::user()->id); 
                $user->is_login = true;
                $user->save();
                return redirect('admin/home');
                }
                Session::flash('unactivated', 'Your account is not activated!!');
                return redirect('/')->withInput();
            }
            Session::flash('unmatch', 'Invalid username or password!!');  
            return redirect('/')->withInput();
        }

/ ** ** /

1 个答案:

答案 0 :(得分:0)

如果您不确定,可以使用Laravel创建身份验证。在命令行中写:

php artisan make:auth

然后看看逻辑如何在文件中工作。 更多你可以在这里阅读: https://laravel.com/docs/5.5/authentication