#laravel
#laravel
Вопрос:
Привет, я пытаюсь заставить работать логин passport, используя токен предъявителя в laravel. в предупреждении отображается токен из localstorage. У меня есть следующий код javascript, который в проекте laravel находится в папке /public / js:
var token = localStorage.getItem('token');
alert( token );
var jsonp_url = "http://localhost/site1/api/get_data?callback=?"
$.ajax({
method: "GET",
dataType: 'jsonP',
url: jsonp_url,
jsonp: true,
headers: {"Authorization": "Bearer " token},
success: function(result) {
alert("DATA");
alert(JSON.stringify(result));
},
error: function(result) {
alert("ERR");
alert(JSON.stringify(result));
}
});
затем во внешний файл javascript я включаю его следующим образом:
<script src="http://localhost/site1/public/js/api_users.js" type="text/javascript"></script>
Маршрут API в api.php заключается в следующем:
Route::middleware('auth:api')->get('/get_data', function (IlluminateHttpRequest $request) {
try {
return response()->json([ 'stuff' => 'some data'], '200' )->setCallback($request->input('callback'));
}
catch( Exception $e ) {
Log::error('Error - ajax_srch_postcode'.$e);
return Response()->json([ 'error' => 'Error cannot proceed!!'], 500 ); // Status code here
}
});
Итак, код возвращает сообщение о статусе 200, но переходит к коду обработчика ошибок в коде ajax, а не к биту результата … есть идеи??
Комментарии:
1. если я изменю маршрут С: //Route:: middleware(‘auth: api’)-> get(‘/get_data’, функция (запрос $request) { НА: Route:: get(‘/get_data’, функция (запрос $ request) { Я получу возвращаемые данные JSON — но они не защищены, не так ли??
2. Я думаю, что это как-то связано с перенаправлением маршрута api на login (auth route) — вместо возврата сообщения JSON с надписью unathentified … пока не уверен, почему