서버에서 세션을 설정하고 언제든지 사용할 수있게하려고합니다. 난 내 컨트롤러 중 하나에 다음 코드를 한 Laravel 5.3을 사용하고 있습니다 : 웹 미들웨어에서 laravel 5.3의 API 미들웨어 세션에 액세스
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
을 줄 것이라고,이 아약스 요청을 처리, 사실이 그것을, 난 그냥 설정 한 세션을 모르는 것 같다 session csrf_token
에 대해 알지 못한다는 것을 의미합니다. 어떻게해야합니까?
편집 : 이것에 대해 죄송
, 내가 밀접하게보고되지 않은
: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.
이
편집이 말하는 오류를 주었다
나는이 일을 시도 그 이유는 세션이 web.php
(web middleware
) 아래에 설정되었고, 아약스 r을 처리하는 컨트롤러 equest는 api.php
에 있으며 api middleware
에 속합니다.
그래서 질문을 수정하려면 web middleware
에서 api middleware
으로 세션에 액세스하는 방법이 있습니까?
죄송합니다.
'csrf_token'을보기 만하면됩니다. –
아니요, 설정된 세션의 값을 가져 오는 것입니다. –
또한 ** vue **를 사용하고 있지 않습니다. ** react **를 사용하고 있습니다. 그러나 여기에 문제가 있기 때문에 중요하지는 않습니다. laravel. –