私はサーバーにセッションを設定し、いつでも利用可能にしたいと考えています。私は私のコントローラの1に次のコードを持って、Laravel 5.3を使用しています:Webミドルウェアからapiミドルウェアへのセッションにlaravel 5.3でアクセスする
Session::set('csrf_token', str_random(72));
return view('index', [
'session' => $session,
'csrf_token' => Session::get('csrf_token')
]);
が、私はaxios
axios.post('to-that-route', 'some-data')
.then(response => console.log(response))
.catch(err => console.log(err));
というパッケージを使用してAjaxリクエストをした私の問題は、そのコントローラであります
return response()->json(var_dump(Session::get('csrf_token')));
が私にnull
を与えるであろうと、このAJAXリクエストを処理し、実際には、このことは、私はちょうど設定されたセッションを知らないようですsession csrf_token
について知らないことを意味します。これをどうすれば処理できますか?
EDIT:
私はこれをやってみました:
public function handler(Request $request) {
// set the session
$request->session()->put('csrf_token', str_rand(72));
}
// the controller that handles the ajax request
public function handler(Request $request) {
return response()->json(var_dump($request->session->get('csrf_token')));
}
それはSession store not set on request.
EDIT言って私にエラーを与えた:これについて
申し訳ありませんが、私は密接に見ていませんでした、その理由は、セッションがweb.php
に設定されていて、それがweb middleware
であり、ajax rを処理するコントローラが平等はapi.php
で、api middleware
の下にあります。
質問を改訂します。web middleware
からapi middleware
にセッションにアクセスする方法はありますか?
申し訳ありませんが、私の悪いです。
純粋に 'csrf_token'を読むことは明白です。 –
いいえ、それは設定されたセッションの値を取得することです。 –
私は** vue **を使用していません**私は** react **を使用していますが、ここでの問題はlaravelなので、それは重要ではないようです。 –