重定向到新页面后,Laravel Auth会话丢失

时间:2018-03-14 07:17:23

标签: php laravel

我使用laravel的Auth进行登录过程,并使用我的数据库中的用户名和密码对我的应用程序进行身份验证。这是我的登录功能:

public function doLogin(Request $req) {
    if (Auth::attempt(['email' => $req->email, 'password' => $req['password']])) {
        return redirect('/');
    } else {
        return redirect('/login')->with('statusFail', 'true');
    }
}

我正在创建这样的路线:

Route::group(['middleware' => ['login']], function() {
    /*All my authenticated routes here ..*/
}

Route::group(['middleware' => ['guest']], function() {
    /*All my non-authenticated routes here ..*/
}

我的中间件是这样的:

旅客:

<?php

namespace App\Http\Middleware;

use Closure;
use Session;
use Auth;

class GuestMiddleware
{
    public function handle($request, Closure $next)
    {
        if (Auth::check())
            return redirect('/');

        return $next($request);
    }
}

的loggedIn:

<?php

namespace App\Http\Middleware;

use Closure;
use Session;
use Auth;

class LoggedInMiddleware
{
    public function handle($request, Closure $next)
    {
        if (!Auth::check())
            return redirect('/login');

        return $next($request);
    }
}

首先,我可以使用正确的用户名和密码登录,然后浏览一些页面后,我的身份验证凭据丢失,并将我重定向回登录状态。有时,它只需要1个网站重定向,然后我的身份验证凭证丢失了。

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:0)

这是错字:

class GuestMiddleware =&gt;两个中间件的名称?

重命名并相应注册。

答案 1 :(得分:0)

使用web中间件:

Route::group(['middleware' => 'web'], function () {
      ///your routes goes here
      Route::group(['middleware' => ['login']], function() {
                 /*All my authenticated routes here ..*/
       });

      Route::group(['middleware' => ['guest']], function() {
           /*All my non-authenticated routes here ..*/
      });
});