0
我正在使用自定義中間件和自定義身份驗證進行會話檢查,發現$ request-> getSession()或Session :: get()不再有效。 在用戶控制器(登錄後),我使用的是:Laravel會話不能與自定義中間件一起工作
public function __construct()
{
$this->middleware('custom_authenticate');
}
而且在自定義驗證器(不使用AUTH),我使用的是:
Session::put('user_id', $user->id);
echo ">> " . Session::get('user_id'); // this gives the value stored in user_id
這裏是我的自定義中間件:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Session;
class CustomAuthenticate
{
public function handle($request, Closure $next)
{
$userId = Session::get('user_id');
if (!isset($userId)) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
return $next($request);
}
}
在中間件,不知從會議得到什麼::得到()
這裏是我的Kernel.php
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'custom_authenticate' => \App\Http\Middleware\CustomAuthenticate::class
];
我在我的上面代碼的應用程序測試。我通常得到$ userId。嗯.. – KmasterYC