首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Passport fror Ajax调用: Laravel

使用Passport fror Ajax调用: Laravel
EN

Stack Overflow用户
提问于 2018-09-09 15:37:37
回答 1查看 1.7K关注 0票数 1

我正在基于Laravel-5.7的应用程序中使用Laravel-5.7。这是第一次对使用Passport处理任何Laravel应用程序。我能够成功地生成oauth_access_token。但是,在我的应用程序Passport中集成会中断运行ajax调用。我试图在互联网上找到解决方案,但我遗漏了一些要点。

每当我发出ajax请求时,我都会得到这个结果{"message":"Unauthenticated."}

因为这个路由应该在管理面板中使用,所以它使用了一个受保护的路由。这里是ajax调用的Javascript代码:

代码语言:javascript
复制
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::post('functionCall', ['middleware' => 'auth:api', 'uses' => 'XYZ@functionCall', 'as' => 'xyz']);

请帮我整理一下我在这段代码中遗漏了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-09 15:48:19

如果您使用Javascript使用自己的API,则需要将中间件Laravel\Passport\Http\Middleware\CreateFreshApiToken::class添加到您的路由中。参见docs:https://laravel.com/docs/5.6/passport#consuming-your-api-with-javascript

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52246064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档