【问题标题】:Nuxt3 + Laravel sanctumNuxt3 + Laravel 密室
【发布时间】:2023-01-26 18:08:17
【问题描述】:

当后端由 laravel sanctum 保护时,如何从 api 获取数据?

当我使用useFetch 时,我没有得到任何数据。

const {data: cat} = await useFetch('/api/categories')

Laravel 文档告诉使用 axios 但在 nuxt3 axios 模块中不起作用。 有人可以帮忙吗?

我尝试使用 useFetch 方法获取 csrf cookie 但它不起作用

const {data} = await useFetch('/sanctum/csrf-cookie', {method: 'get'}).then(Response => {
    
})

【问题讨论】:

    标签: laravel vue.js nuxt.js vuejs3 nuxtjs3


    【解决方案1】:

    要在使用圣所时获取数据,

    您已经通过路由 /sanctum/csrf-cookie 获得了上面的 csrf 令牌。

    然而,这还不够。

    对于您想要发出的每个安全请求,您需要发送一个使用 sanctum 生成的令牌。

    通常,对于应用程序,您将遵循以下步骤

    1. 登录用户然后使用
      $user->createToken('TokenName');
      
      1. 生成令牌后,您可以在应用程序中使用 cookie 保存此令牌。每次您向您的应用程序发出后续请求时,简单地发送令牌是您的请求标头作为不记名令牌。 标题将是这样的
      "Authorization": "Bearer " + TOKEN_VALUE;
      

      一切都取决于您发送请求的方式。

      更多文档可用On this loink on Laravel Documentation

      另外,确保你有

      Accept: Application/json
      

      也作为标题的一部分。

      如果您不在标头中发送该令牌,您的请求将给您一个错误“未验证”。

      希望这可以帮助。

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 2022-10-12
      • 2022-10-19
      • 2023-02-15
      • 2021-11-05
      • 2022-11-11
      • 2022-10-19
      • 2022-12-11
      • 2022-10-25
      相关资源
      最近更新 更多