Laravel会话不使用自定义中间件
我使用自定义中间件和自定义身份验证进行会话检查,发现$request->getSession()或session::get()不再工作。 在用户控制器(登录后)中,我使用:Laravel会话不使用自定义中间件,laravel,session,middleware,Laravel,Session,Middleware,我使用自定义中间件和自定义身份验证进行会话检查,发现$request->getSession()或session::get()不再工作。 在用户控制器(登录后)中,我使用: public function __construct() { $this->middleware('custom_authenticate'); } Session::put('user_id', $user->id); echo ">> " . Session::get('user_id
public function __construct()
{
$this->middleware('custom_authenticate');
}
Session::put('user_id', $user->id);
echo ">> " . Session::get('user_id'); // this gives the value stored in user_id
在自定义身份验证控制器(不使用auth)中,我使用:
public function __construct()
{
$this->middleware('custom_authenticate');
}
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);
}
}
检查是否已将该中间件分组到路由中
Route::group(['middleware' => 'custom_authenticate'], function () {
//list of all controllers action
});
您甚至可以如下更改中间件操作
public function handle($request, Closure $next)
{
if(session()->has('user_id')){
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
return $next($request);
}
检查是否已将该中间件分组到路由中
Route::group(['middleware' => 'custom_authenticate'], function () {
//list of all controllers action
});
您甚至可以如下更改中间件操作
public function handle($request, Closure $next)
{
if(session()->has('user_id')){
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
return $next($request);
}
我用上面的代码测试我的应用程序。我通常得到$userId。嗯,我用上面的代码测试我的应用程序。我通常得到$userId。隐马尔可夫模型。。