2017-01-04 19 views
1

私はサーバーにセッションを設定し、いつでも利用可能にしたいと考えています。私は私のコントローラの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にセッションにアクセスする方法はありますか?

申し訳ありませんが、私の悪いです。

+0

純粋に 'csrf_token'を読むことは明白です。 –

+0

いいえ、それは設定されたセッションの値を取得することです。 –

+0

私は** vue **を使用していません**私は** react **を使用していますが、ここでの問題はlaravelなので、それは重要ではないようです。 –

答えて

0

申し訳ありませんが、私はよく見ていませんでした。理由は、セッションがWebミドルウェアの下にあるweb.phpに設定されていて、ajaxリクエストを処理するコントローラがapi.phpにありますAPIミドルウェア

私は質問を改訂したいと思います。ウェブミドルウェアからAPIミドルウェアにセッションにアクセスする方法はありますか?

申し訳ありませんが、私の悪いです。

関連する問題