Consume Passport fror Ajax calls : Laravel

Consume Passport fror Ajax calls : Laravel



I am using Passport within my Laravel-5.7 based application. It is first time for me to work on any Laravel application using Passport. I am able to generate oauth_access_token successfully. However, integrating Passport in my application breaks running ajax calls. I tried to find solution on Internet but I am missing some point.


Passport


Laravel-5.7


Laravel


Passport


oauth_access_token


Passport



Whenever, I make a ajax request I get this result "message":"Unauthenticated."


"message":"Unauthenticated."



Since, this route is supposed to be used in admin panel, it consumes a protected route. Here, is my Javascript code for ajax call:


jQuery(function ($)
startTime();
$('button[name="controller"], button[name="generateApi"]').on('click', function ()
var url = "";
var button = $(this);
var data = api_token: "!! $user->api_token !!";

if (button.hasClass('tre'))
url = " route('abc') ";
else
url = " route('xyz') ";
data.dataId = button.data('id');


var x = document.cookie;
$.ajax(
url: url,
headers:
"X-CSRF-TOKEN" : ' csrf_token() ',
"Authorization": "Bearer " + " Cookie::get('laravel_token') ",
,
type: 'post',
dataType: 'json',
data: data,
).done(function (res)

if (button.hasClass('tre'))
$('input[name="apiKey"]').val(res.apiKey);
return true;


$(button).toggleClass('btn-success btn-danger');
);
);
);



API route declaration:



Route::post('functionCall', ['middleware' => 'auth:api', 'uses' => 'XYZ@functionCall', 'as' => 'xyz']);


Route::post('functionCall', ['middleware' => 'auth:api', 'uses' => 'XYZ@functionCall', 'as' => 'xyz']);



Please, help me sort out what I am missing in this code.




1 Answer
1



If you're consuming your own API with Javascript, you need to add the middleware LaravelPassportHttpMiddlewareCreateFreshApiToken::class to your route. See docs: https://laravel.com/docs/5.6/passport#consuming-your-api-with-javascript.


LaravelPassportHttpMiddlewareCreateFreshApiToken::class






protected $middlewareGroups = [ 'web' => [ ....... // IlluminateSessionMiddlewareAuthenticateSession::class, IlluminateViewMiddlewareShareErrorsFromSession::class, LaravelPassportHttpMiddlewareCreateFreshApiToken::class, ],' is it correct??

– BlueSuiter
Sep 9 '18 at 17:52


protected $middlewareGroups = [ 'web' => [ ....... // IlluminateSessionMiddlewareAuthenticateSession::class, IlluminateViewMiddlewareShareErrorsFromSession::class, LaravelPassportHttpMiddlewareCreateFreshApiToken::class, ],'






Thank you Stan :)

– BlueSuiter
Sep 9 '18 at 18:54



Thanks for contributing an answer to Stack Overflow!



But avoid



To learn more, see our tips on writing great answers.



Required, but never shown



Required, but never shown




By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)