当前位置: 首页 > 知识库问答 >
问题:

如何使用Axios验证的API

白丁雨
2023-03-14

我正在尝试使用Vue和Laravel构建一个应用程序。我目前在Laravel中使用passport身份验证进行用户身份验证。但是,当我尝试使用axio从vue组件发出post请求时,即使我当前已登录,也会获得401未经授权的权限。

下面是一些示例代码:

1.从vue组件获取请求

    getEvents() {
      axios
        .get("/api/calendar")
        .then(resp => (this.events = resp.data.data))
        .catch(err => console.log(err.response.data));
    }

2.拉维路

Route::apiResource('/calendar', 'CalendarController')->middleware('auth:api');

3.与上述get请求关联的日历控制器

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return CalendarResource::collection(Calendar::all());
    }

我花了好几个小时研究这个问题,但我发现的一切都不起作用。因此,任何帮助都是非常诱人的。

编辑:

额外细节

我使用Laravel 5.8.35。

关于护照,我使用这个留档laravel.com/docs/5.8/passport,并遵循安装前端快速启动和部署步骤。

第二次编辑:

github上的完整代码

这是github上的完整项目,如果有帮助的话。https://github.com/CMHayden/akal.app/tree/feature/Calendar

共有3个答案

万修然
2023-03-14

尝试在此处添加正确的中间件以及其他建议

'web' => [
    // Other middleware...
    \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],

https://laravel.com/docs/5.8/passport#consuming-使用javascript创建api

//send Authorization token with each request
axios.defaults.headers.common["Authorization"] = `Bearer ${token}`;
年文柏
2023-03-14

请确认您是否已在条目htmlblade文件中设置csrf令牌的meta

<meta name="csrf-token" content="{{ csrf_token() }}">

还有axiosbootstrap.js文件中的头

window.axios = require('axios');

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

西门展
2023-03-14

我对您的项目做了一些更改,下面是github存储库https://github.com/AzafoCossa/ProFix,希望它能起作用。

打开AuthServiceProvider。php文件,将Passport::routes()添加boot()函数并打开auth。php文件,从'driver'更新'api'防护=

'web' => [
   // Other middleware...
   \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],

 类似资料:
  • 数据正在从API成功返回。这是我第一次使用TypeScript调用API。我遇到的问题是,我不确定我的接口是否成功验证了应用编程接口数据。 这是我的界面

  • 我正试图将一些表单数据发送到后端,但Laravel验证不会返回422状态的错误。 公理 简单的axios将请求发送到URL,并希望在请求周期中发现错误时返回响应。 Laravel 我已经设置了Laravel验证来验证一些表单输入,如果验证失败,则返回422。 回答 给出了一个响应,但当我试图对其进行控制台时,控制台中没有定义: 我在这里遇到过这个问题https://github.com/axios

  • 问题内容: 我正在尝试使用axios向api端点发出请求,但出现以下错误: 似乎axios使用的https模块无法验证服务器上使用的SSL证书。 使用浏览器访问服务器时,证书有效,我可以查看/下载该证书。我还可以通过https向浏览器上的api请求。 我可以通过关闭验证来解决此问题。此代码有效。 问题是,这不验证SSL证书,因此打开了安全漏洞。 如何配置axios以信任证书并正确验证它? 问题答案

  • 问题内容: 我正在尝试使用Jackson JSON接受一个字符串,并确定它是否为有效JSON。谁能建议要使用的代码示例(Java)? 问题答案: 不知道您的用例是什么,但是应该这样做:

  • 问题内容: 我是从记录用户输入使用。我需要验证输入内容,例如: 必须为非负数 它必须是字母 …等等 最好的方法是什么? 问题答案: 示例1:验证正整数 这是一个用于int从输入中验证肯定的简单示例。 结果: 请注意,与更详细组合相比,使用起来要容易得多。通过合同,一个 保证,如果它,然后将安静地给你int,并不会引发任何。 示例2:同一令牌上有多个 请注意,上面的代码段包含一个语句,以使Scann