简体   繁体   English

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

[英]In a Laravel 5.4 app, when I try to login, it redirects to same login page

Web.php 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 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 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 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('/');
  }

}

When I try to login it redirects to the same page ie login page, I tried to solve this problem but I can't. 当我尝试登录时,它重定向到同一页面,即登录页面,我试图解决此问题,但不能。 I want to redirect dashboard through login page, but it is not happen. 我想通过登录页面重定向仪表板,但这没有发生。 There is no error shown and I can't go on dashboard page too. 没有显示错误,我也无法进入仪表板页面。

Try this way in postlogin function to check user authentication. 在postlogin函数中尝试这种方式以检查用户身份验证。

$auth = Auth::attempt(['username'=>$request->username,'password'=>$request->password,'active'=>1]);
if($auth){
//do something...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM