0
私はカスタムミドルウェアとカスタム認証をセッションチェックに使用していましたが、$ request-> getSession()またはSession :: get()が機能しなくなっています。 (ログイン後)、ユーザコントローラで は、私が使用している:Laravelセッションがカスタムミドルウェアで動作しない
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);
}
}
、私はセッションから何かを得ることはありません::(取得)
ここでは私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