前端存token后端獲取token代碼實(shí)例(Spring?Boot)
Token是一種用于身份驗(yàn)證和授權(quán)的令牌(Token)機(jī)制,在網(wǎng)絡(luò)通信中廣泛使用。它是一個(gè)字符串,代表著用戶的身份或權(quán)限,用于驗(yàn)證用戶在系統(tǒng)中的訪問(wèn)權(quán)限。
在身份驗(yàn)證方面,Token通常用于替代傳統(tǒng)的基于會(huì)話的身份驗(yàn)證機(jī)制,如使用Cookie+Session的方式。使用Token進(jìn)行身份驗(yàn)證的好處是,服務(wù)器不需要在內(nèi)存中保存用戶的會(huì)話信息,因?yàn)門oken本身包含了所有驗(yàn)證所需的信息。這使得Token在分布式系統(tǒng)或無(wú)狀態(tài)的API接口中非常適用。Token通常由服務(wù)器生成,并在用戶登錄或進(jìn)行身份驗(yàn)證時(shí)發(fā)放給客戶端。客戶端將Token存儲(chǔ)起來(lái),并在后續(xù)的請(qǐng)求中將Token作為身份認(rèn)證的憑證發(fā)送給服務(wù)器。服務(wù)器接收到Token后,可以通過(guò)驗(yàn)證Token的有效性來(lái)確認(rèn)用戶的身份和權(quán)限。常見的Token類型包括JWT(JSON Web Token)、OAuth 2.0的訪問(wèn)令牌(Access Token)、Bearer Token等。
在前端,使用瀏覽器提供的 Web Storage(如LocalStorage或SessionStorage)或者使用HTTP Cookie來(lái)存儲(chǔ)Token。
使用LocalStorage:
// 存儲(chǔ)Token到LocalStorage localStorage.setItem('token', 'your_token_value'); // 從LocalStorage讀取Token const token = localStorage.getItem('token');
使用SessionStorage:
// 存儲(chǔ)Token到SessionStorage sessionStorage.setItem('token', 'your_token_value'); // 從SessionStorage讀取Token const token = sessionStorage.getItem('token');
使用HTTP Cookie:
// 存儲(chǔ)Token到Cookie document.cookie = 'token=your_token_value; expires=...; path=/'; // 從Cookie讀取Token const cookies = document.cookie.split(';'); let token = null; cookies.forEach(cookie => { const [name, value] = cookie.trim().split('='); if (name === 'token') { token = value; } });
在前端進(jìn)行Token驗(yàn)證時(shí),通過(guò)在請(qǐng)求頭中添加Authorization
字段,并將Token值作為其值傳遞給后端。在后端的代碼中,使用@RequestHeader("Authorization") String token
來(lái)獲取請(qǐng)求頭中的Token值進(jìn)行驗(yàn)證和處理。
在Spring Boot后端中,使用@RequestHeader
注解來(lái)接收前端傳遞的Token值。
示例:
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RestController; @RestController public class YourController { @GetMapping("/your-endpoint") public String yourEndpoint(@RequestHeader("Authorization") String token) { // 處理 return "Success"; } }
使用@RequestHeader("Authorization")
注解將前端傳遞的Token值綁定到token
參數(shù)上。然后,可以在方法體中使用token
進(jìn)行驗(yàn)證和處理。
總結(jié)
到此這篇關(guān)于前端存token后端獲取token的文章就介紹到這了,更多相關(guān)前端存token后端獲取token內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于RowBounds分頁(yè)原理、RowBounds的坑記錄
這篇文章主要介紹了關(guān)于RowBounds分頁(yè)原理、RowBounds的坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04SpringBoot 整合Tess4J庫(kù)實(shí)現(xiàn)圖片文字識(shí)別案例詳解
Tess4J是一個(gè)基于Tesseract OCR引擎的Java接口,可以用來(lái)識(shí)別圖像中的文本,說(shuō)白了,就是封裝了它的API,讓Java可以直接調(diào)用,今天給大家分享一個(gè)SpringBoot整合Tess4j庫(kù)實(shí)現(xiàn)圖片文字識(shí)別的小案例2023-10-10Mybatis遷移到Mybatis-Plus的實(shí)現(xiàn)方法
這篇文章主要介紹了Mybatis遷移到Mybatis-Plus的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Java執(zhí)行shell命令的實(shí)現(xiàn)
本文主要介紹了Java執(zhí)行shell命令的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Java集合Map的clear與new Map區(qū)別詳解
這篇文章主要介紹了Java集合Map的clear與new Map區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04java線程安全鎖ReentrantReadWriteLock原理分析readLock
這篇文章主要為大家介紹了java線程安全鎖ReentrantReadWriteLock原理分析readLock,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10java實(shí)現(xiàn)隨機(jī)數(shù)生成器
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)隨機(jī)數(shù)生成器,隨機(jī)數(shù)生成小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12