前端如何將Token加到請求頭?

在前後端分離的應用中,前端需要使用Token來進行用戶認證和權限控制。通常情況下,前端會將Token存儲在Cookie或本地存儲中,但是每次需要發送請求的時候都需要將Token放到請求頭中,這樣才能保證後端能夠正確地識別用戶身份。下面將從多個方面進行講解。

一、前端每次請求都帶Token

每個請求都需要攜帶Token是很麻煩的,因為這會導致代碼冗餘,而且如果忘記添加Token也會導致請求失敗。因此,我們可以使用攔截器來自動添加Token,避免每次都手動添加。

//定義一個攔截器
const request = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000 * 60,
  headers: {
    'Content-Type': 'application/json;charset=UTF-8'
  }
});

//添加一個請求攔截器
request.interceptors.request.use(
  config => {
    //從本地存儲中獲取Token
    const token = localStorage.getItem('token');
    if (token) {
      //在請求頭中攜帶Token
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => Promise.reject(error)
);

//發送請求
request.post('/users', {
  name: 'John Doe',
  age: 30
});

二、前端Token放在請求頭

一般情況下,我們可以將Token放到請求頭的Authorization字段中,這是一種標準的方式。同時,為了防止Token被截取或者泄露,可以使用HTTPS協議進行加密傳輸。

//定義一個請求頭
const headers = {
  'Content-Type': 'application/json;charset=UTF-8',
  'Authorization': `Bearer ${localStorage.getItem('token')}`
};

//發送請求
axios.get('/users', { headers });

三、前端攜帶Token發送請求

有些API需要進行跨域請求,這時候我們可以使用jsonp來發送請求。在發送請求的時候,我們可以使用jQuery的ajax函數來攜帶Token。

$.ajax({
  url: 'https://api.example.com/users',
  type: 'get',
  dataType: 'jsonp',
  jsonpCallback: 'callback',
  beforeSend: function(request) {
    //在請求頭中攜帶Token
    request.setRequestHeader('Authorization', `Bearer ${localStorage.getItem('token')}`);
  },
  success: function(data) {
    console.log(data);
  }
});

四、前端請求如何攜帶Token

在使用XMLHttpRequest或fetch發送請求時,我們需要手動添加Token到請求頭中。

//使用XMLHttpRequest
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.example.com/users');
xhr.setRequestHeader('Authorization', `Bearer ${localStorage.getItem('token')}`);
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    console.log(xhr.responseText);
  }
};
xhr.send();

//使用fetch
fetch('https://api.example.com/users', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${localStorage.getItem('token')}`
  }
})
.then(response => response.json())
.then(data => console.log(data));

五、前端請求帶Token

我們可以通過在請求中添加Token參數的方式來發送請求。不過,在將Token作為參數的時候,需要注意參數名和值的格式要與後端要求一致。

axios.get('/users', {
  params: {
    access_token: localStorage.getItem('token')
  }
});

總之,前端在發送請求時需要將Token添加到請求頭中,這樣才能保證後端能夠正確識別用戶身份。我們可以使用攔截器、請求頭、攜帶Token等多種方式來實現。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/244394.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:02
下一篇 2024-12-12 13:02

相關推薦

  • 如何將Oracle索引變成另一個表?

    如果你需要將一個Oracle索引導入到另一個表中,可以按照以下步驟來完成這個過程。 一、創建目標表 首先,需要在數據庫中創建一個新的表格,用來存放索引數據。可以通過以下代碼創建一個…

    編程 2025-04-29
  • JWT驗證Token的實現

    本文將從以下幾個方面對JWT驗證Token進行詳細的闡述,包括:JWT概述、JWT驗證Token的意義、JWT驗證Token的過程、JWT驗證Token的代碼實現、JWT驗證Tok…

    編程 2025-04-29
  • Python如何將字符串1234變成數字1234

    Python作為一種廣泛使用的編程語言,對於數字和字符串的處理提供了很多便捷的方式。如何將字符串“1234”轉化成數字“1234”呢?下面將從多個方面詳細闡述Python如何將字符…

    編程 2025-04-29
  • 如何將Java項目分成Modules並使用Git進行版本控制

    本文將向您展示如何將Java項目分成模塊,並使用Git對它們進行版本控制。分割Java項目可以使其更容易維護和拓展。Git版本控制還可以讓您跟蹤項目的發展並協作開發。 一、為什麼要…

    編程 2025-04-28
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 如何將視頻導出成更小的格式給IT前端文件

    本文將從以下幾個方面介紹如何將視頻導出成更小的格式,以便於在IT前端文件中使用。 一、選擇更小的視頻格式 在選擇視頻格式時,應該儘可能選擇更小的格式,如MP4、WebM、FLV等。…

    編程 2025-04-28
  • 如何將 Python 列表變成字符串

    本文將從多個方面詳細介紹如何將 Python 列錶轉換為字符串。列表是 Python 中常用的數據類型,但在實際開發中,我們通常需要將其轉換為字符串形式進行操作。下面將從以下幾個方…

    編程 2025-04-27
  • 如何將Python代碼部署到服務器

    Python是一種高級編程語言,常被用於數據分析、機器學習、Web開發等不同領域的工作。但是,只有將Python代碼部署到服務器上,才能讓其真正發揮作用。 一、選擇服務器 要將Py…

    編程 2025-04-27
  • python如何將數據轉換為字符

    Python是一種高級編程語言,擁有簡單易學、可讀性強、語法簡潔的特點,而在編程過程中,我們經常需要將數據轉換為字符格式以便於輸出、存儲和傳輸。下面將從多個方面詳細講解python…

    編程 2025-04-27
  • 如何通過knife4j設置全局token

    本文將介紹如何在使用knife4j作為接口文檔管理工具時,通過設置全局token來提高接口文檔的安全性。 一、什麼是knife4j Knife4j是一款基於springfox的開源…

    編程 2025-04-27

發表回復

登錄後才能評論