【问题标题】:Send Sanctum token automaticaly自动发送 Sanctum 令牌
【发布时间】:2022-01-17 03:34:12
【问题描述】:

我正在与 Sanctum 和 VueJs 合作一个 Laravel 8 项目,我想知道是否有任何方法可以发送 token 而无需在我的 axios 请求中写入每个时间标头:

const token = localStorage.getItem("token");
        axios
            .get("/api/endpoint/", {
                headers: {
                    "Content-Type": "application/json",
                    Authorization: "Bearer " + token
                }
            })
            .then(response => (this.expenses = response.data));
    }

【问题讨论】:

  • 单页应用?

标签: laravel vue.js


【解决方案1】:

在 lib 或类似的东西中定义 axios 配置:

import Axios from 'axios'

const axios = Axios.create({
    baseURL: process.env.NEXT_PUBLIC_SERVER_BASE_URL,
    headers: {
        'Content-Type': 'application/json',
        Authorization: "Bearer " + token
    },
})

export default axios

然后像这样使用你的 lib 而不是基础 axios:

import axios from '@/lib/axios'

 axios.post(...)
        

【讨论】:

    【解决方案2】:

    您可以使用 axios 配置。

    例如,导入 axios :

    window.axios = require('axios');
    

    那么你可以使用这个:

    axios.defaults.headers.common['Authorization'] = "Bearer ...";
    

    您可以将令牌存储在 localStorage 中并在此处使用。

    另一种方法是使用 axios 拦截器。 您阅读了有关拦截器的文档here

    【讨论】:

      猜你喜欢
      • 2021-07-02
      • 2020-07-04
      • 1970-01-01
      • 2021-01-14
      • 2021-08-05
      • 1970-01-01
      • 2021-06-04
      • 2021-11-09
      • 2021-11-27
      相关资源
      最近更新 更多