Error Adding Laravel Sanctum Middleware
pro-cms opened this issue · 3 comments
pro-cms commented
Hi, want to make my stories route protected only for authenticated users, for that I used laravel sanctum wherein the request i attach bear token as for authorization but when I send the request I got an error response. When i remove header Application/json it returns empty array ,
{
"data": []
}
when I add it got this error
{
"message": "The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/cloudcreativity/laravel-json-api/src/Http/ContentNegotiator.php",
"line": 213,
"trace": [
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/cloudcreativity/laravel-json-api/src/Http/ContentNegotiator.php",
"line": 183,
"function": "notAcceptable",
"class": "CloudCreativity\\LaravelJsonApi\\Http\\ContentNegotiator",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/cloudcreativity/laravel-json-api/src/Http/ContentNegotiator.php",
"line": 129,
"function": "checkAcceptTypes",
"class": "CloudCreativity\\LaravelJsonApi\\Http\\ContentNegotiator",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/cloudcreativity/laravel-json-api/src/Http/Middleware/NegotiateContent.php",
"line": 125,
"function": "encodingForMany",
"class": "CloudCreativity\\LaravelJsonApi\\Http\\ContentNegotiator",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/cloudcreativity/laravel-json-api/src/Http/Middleware/NegotiateContent.php",
"line": 92,
"function": "matchEncoding",
"class": "CloudCreativity\\LaravelJsonApi\\Http\\Middleware\\NegotiateContent",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "CloudCreativity\\LaravelJsonApi\\Http\\Middleware\\NegotiateContent",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/cloudcreativity/laravel-json-api/src/Http/Middleware/BootJsonApi.php",
"line": 82,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "CloudCreativity\\LaravelJsonApi\\Http\\Middleware\\BootJsonApi",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
"line": 50,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 127,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 103,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 55,
"function": "handleRequestUsingNamedLimiter",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php",
"line": 44,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Auth\\Middleware\\Authenticate",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 33,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 128,
"function": "Laravel\\Sanctum\\Http\\Middleware\\{closure}",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 103,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 34,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 103,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 695,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 670,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 636,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 625,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 166,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 128,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 86,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/fruitcake/laravel-cors/src/HandleCors.php",
"line": 57,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Fruitcake\\Cors\\HandleCors",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/fideloper/proxy/src/TrustProxies.php",
"line": 57,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Fideloper\\Proxy\\TrustProxies",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 103,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 141,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/core/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 110,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/home/u417428104/domains/simulizi.co.tz/public_html/index.php",
"line": 52,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
}
]
}
Here is my route
JsonApi::register('v1')->middleware('auth:sanctum')->routes(function ($api, $router){
// JsonApi::register('v1', function (Api $api) {
$api->resource('stories')->relationships(function ($relations) {
$relations->hasMany('episodes');
$relations->hasOne('Category');
});
$api->resource('posts');
$api->resource('sliders');
$api->resource('categories')->relationships(function ($relations) {
$relations->hasMany('Stories');
});
});
Here is my request Dart
var headers = {
'Accept': 'application/json',
'Authorization': 'Bearer 162|DOhxAdaJ0Vf9LmTdAf4bKDyoh688IDmAb7VjcVP5'
};
var request = http.Request('GET', Uri.parse('https://simulizi.co.tz/api/v1/stories'));
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
Any idea how to resolve this issue
lindyhopchris commented
You need to use the JSON:API media type in your Accept
header: application/vnd.api+json
.
application/json
isn't valid for a JSON:API request.
pro-cms commented
when I useapplication/vnd.api+json the request doesn't work, it returns an empty array
lindyhopchris commented
Empty array means there's no matching data.