在Laravel 5.4应用程序中,当我尝试登录时,它会重定向到相同的登录页面

问题描述 投票:0回答:1

Web.php

 Route::get('/' , ['as' => '/' , 'uses'=> 'loginController@getlogin']);
    Route::post('/login', ['as' => 'login', 'uses'=> 'loginController@postlogin']);

    Route::group(['middleware' =>['authen']],function (){
    Route::get('/logout' ,['as'=>'logout', 'uses'=> 'loginController@getLogout']);
    Route::get('/dashboard',['as'=>'dashboard', 'uses'=> 'dashboardController@dashboard']);

});

dashboardController

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class dashboardController extends Controller
{
     public function __construct()
    {
        $this->middleware('web');
    }
    public function dashboard()
    {
        return view('layouts.master');
    }
}

Authen.php

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;

class Authen
{
    public function handle($request, Closure $next ,$guard ='web')
    {
        if (!Auth::guard($guard)->check()) 
        {
          return redirect()->route('/');   
        }
        return $next($request);
    }
}

的LoginController

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Auth;

class loginController extends Controller
{

use AuthenticatesUsers;

    protected $username = 'username';
    protected $redirectTo = '/dashboard';
    protected $guard   = 'web';

  public function getLogin()
  {
    if (Auth::guard('web')->check()) 
    {
        return redirect()->route('dashboard');
    }
    return view('login');
  }

  public function postlogin(Request $request)
  {
    $auth = Auth::guard('web')->attempt(['username'=>$request->username,'password'=>$request->password,'active'=>1]);

    if ($auth) 
    {
        return redirect()->route('dashboard');
    }
        return redirect()->route('/');
  }

  public function getLogout()
  {
    Auth::guard('web')->logout();
    return redirect()->route('/');
  }

}

当我尝试登录时重定向到同一页面,即登录页面,我试图解决这个问题,但我不能。我想通过登录页面重定向仪表板,但它不会发生。没有显示错误,我也无法进入仪表板页面。

php redirect routes laravel-5.4
1个回答
1
投票

在postlogin函数中尝试这种方式来检查用户身份验证。

$auth = Auth::attempt(['username'=>$request->username,'password'=>$request->password,'active'=>1]);
if($auth){
//do something...
}
© www.soinside.com 2019 - 2024. All rights reserved.