国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

甘肅最新消息今天seo優(yōu)化顧問

甘肅最新消息今天,seo優(yōu)化顧問,wordpress演示數(shù)據(jù)庫,網(wǎng)站根目錄目錄 一、JWT介紹 二、安裝依賴 三、登陸接口 1、令牌工具類 2、接口代碼 四、說明 一、JWT介紹 JWT全稱:JSON Web Token (官網(wǎng):JSON Web Tokens - jwt.io) 定義了一種簡潔的、自包含的格式,用于在通信雙方以json…

目錄

一、JWT介紹

二、安裝依賴

?三、登陸接口

1、令牌工具類

2、接口代碼

四、說明


一、JWT介紹

JWT全稱:JSON Web Token (官網(wǎng):JSON Web Tokens - jwt.io)

  • 定義了一種簡潔的、自包含的格式,用于在通信雙方以json數(shù)據(jù)格式安全的傳輸信息。由于數(shù)字簽名的存在,這些信息是可靠的。

    簡潔:是指jwt就是一個(gè)簡單的字符串??梢栽谡埱髤?shù)或者是請求頭當(dāng)中直接傳遞。

    自包含:指的是jwt令牌,看似是一個(gè)隨機(jī)的字符串,但是我們是可以根據(jù)自身的需求在jwt令牌中存儲(chǔ)自定義的數(shù)據(jù)內(nèi)容。如:可以直接在jwt令牌中存儲(chǔ)用戶的相關(guān)信息。

    簡單來講,jwt就是將原始的json數(shù)據(jù)格式進(jìn)行了安全的封裝,這樣就可以直接基于jwt在通信雙方安全的進(jìn)行信息傳輸了。

JWT的組成: (JWT令牌由三個(gè)部分組成,三個(gè)部分之間使用英文的點(diǎn)來分割)

  • 第一部分:Header(頭), 記錄令牌類型、簽名算法等。 例如:{"alg":"HS256","type":"JWT"}

  • 第二部分:Payload(有效載荷),攜帶一些自定義信息、默認(rèn)信息等。 例如:{"id":"1","username":"Tom"}

  • 第三部分:Signature(簽名),防止Token被篡改、確保安全性。將header、payload,并加入指定秘鑰,通過指定簽名算法計(jì)算而來。

    簽名的目的就是為了防jwt令牌被篡改,而正是因?yàn)閖wt令牌最后一個(gè)部分?jǐn)?shù)字簽名的存在,所以整個(gè)jwt 令牌是非常安全可靠的。一旦jwt令牌當(dāng)中任何一個(gè)部分、任何一個(gè)字符被篡改了,整個(gè)令牌在校驗(yàn)的時(shí)候都會(huì)失敗,所以它是非常安全可靠的。

?

JWT是如何將原始的JSON格式數(shù)據(jù),轉(zhuǎn)變?yōu)樽址哪?#xff1f;

其實(shí)在生成JWT令牌時(shí),會(huì)對JSON格式的數(shù)據(jù)進(jìn)行一次編碼:進(jìn)行base64編碼

Base64:是一種基于64個(gè)可打印的字符來表示二進(jìn)制數(shù)據(jù)的編碼方式。既然能編碼,那也就意味著也能解碼。所使用的64個(gè)字符分別是A到Z、a到z、 0- 9,一個(gè)加號(hào),一個(gè)斜杠,加起來就是64個(gè)字符。任何數(shù)據(jù)經(jīng)過base64編碼之后,最終就會(huì)通過這64個(gè)字符來表示。當(dāng)然還有一個(gè)符號(hào),那就是等號(hào)。等號(hào)它是一個(gè)補(bǔ)位的符號(hào)

需要注意的是Base64是編碼方式,而不是加密方式。

二、安裝依賴

<!-- JWT依賴-->
<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version>
</dependency>

?三、登陸接口

1、令牌工具類

public class JwtUtils {private static String signKey = "zqhjwt";//簽名密鑰private static Long expire = 43200000L; //有效時(shí)間/*** 生成JWT令牌* @param claims JWT第二部分負(fù)載 payload 中存儲(chǔ)的內(nèi)容* @return*/public static String generateJwt(Map<String, Object> claims){String jwt = Jwts.builder().addClaims(claims)//自定義信息(有效載荷).signWith(SignatureAlgorithm.HS256, signKey)//簽名算法(頭部).setExpiration(new Date(System.currentTimeMillis() + expire))//過期時(shí)間.compact();return jwt;}/*** 解析JWT令牌* @param jwt JWT令牌* @return JWT第二部分負(fù)載 payload 中存儲(chǔ)的內(nèi)容*/public static Claims parseJWT(String jwt){Claims claims = Jwts.parser().setSigningKey(signKey)//指定簽名密鑰.parseClaimsJws(jwt)//指定令牌Token.getBody();return claims;}
}

2、接口代碼

LoginController

@RestController
public class LoginController {@AutowiredEmpService empService;@PostMapping("login")public Result login(@RequestBody Emp emp){Emp e =  empService.login(emp);if(e!= null){Map<String,Object> clzims = new HashMap<>();clzims.put("id",e.getId());clzims.put("name",e.getName());clzims.put("username",e.getUsername());// 生成jwt令牌String jwt = JwtUtils.generateJwt(clzims);return Result.success(jwt);}return  Result.error("用戶名或密碼錯(cuò)誤");}}

Service

@Overridepublic Emp login(Emp emp) {Emp loginEmp = empMapper.getByUerAndPsw(emp);return loginEmp;}

mapper

@Select("SELECT * from emp where username = #{username} and password = #{password}")Emp getByUerAndPsw(Emp emp);

四、說明

需求:

  1. 生成令牌

    在登錄成功之后來生成一個(gè)JWT令牌,并且把這個(gè)令牌直接返回給前端
  2. 校驗(yàn)令牌

    攔截前端請求,從請求中獲取到令牌,對令牌進(jìn)行解析校驗(yàn)

步驟:

  1. 引入JWT工具類

    在項(xiàng)目工程下創(chuàng)建uitle包,并把提供JWT工具類復(fù)制到該包下
  2. 登錄完成后,調(diào)用工具類生成JWT令牌并返回

接口文檔

  • 響應(yīng)數(shù)據(jù)

    參數(shù)格式:application/json

    參數(shù)說明:

    名稱類型是否必須默認(rèn)值備注其他信息
    codenumber必須響應(yīng)碼, 1 成功 ; 0 失敗
    msgstring非必須提示信息
    datastring必須返回的數(shù)據(jù) , jwt令牌

    響應(yīng)數(shù)據(jù)樣例:

    {"code": 1,"msg": "success","data": "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi6YeR5bq4IiwiaWQiOjEsInVzZXJuYW1lIjoiamlueW9uZyIsImV4cCI6MTY2MjIwNzA0OH0.KkUc_CXJZJ8Dd063eImx4H9Ojfrr6XMJ-yVzaWCVZCo"
    }
  • 備注說明

    用戶登錄成功后,系統(tǒng)會(huì)自動(dòng)下發(fā)JWT令牌,然后在后續(xù)的每次請求中,都需要在請求頭header中攜帶到服務(wù)端,請求頭的名稱為 token ,值為 登錄時(shí)下發(fā)的JWT令牌。

    如果檢測到用戶未登錄,則會(huì)返回如下固定錯(cuò)誤信息:

    {"code": 0,"msg": "NOT_LOGIN","data": null
    }

解讀完接口文檔中的描述了,目前我們先來完成令牌的生成和令牌的下發(fā),我們只需要生成一個(gè)令牌返回給前端就可以了。

http://aloenet.com.cn/news/29565.html

相關(guān)文章:

  • 設(shè)計(jì)案例分享網(wǎng)站搜索引擎優(yōu)化包括哪些內(nèi)容
  • h5移動(dòng)端網(wǎng)站開發(fā)最有效的宣傳方式
  • 新開傳奇網(wǎng)站999新服網(wǎng)百度正版下載恢復(fù)百度
  • 美國做ppt的網(wǎng)站百度競價(jià)排名榜
  • 貴州專業(yè)網(wǎng)站建設(shè)公司哪家好湖南seo優(yōu)化哪家好
  • 新疆建網(wǎng)站程序站外推廣
  • 正規(guī)網(wǎng)店代運(yùn)營公司seo每日
  • 豆瓣網(wǎng)站模板滕州今日頭條新聞
  • 自己的電腦做網(wǎng)站服務(wù)器seo的五個(gè)步驟
  • 找人做網(wǎng)站協(xié)議網(wǎng)站在線優(yōu)化檢測
  • 專業(yè)網(wǎng)站優(yōu)化外包百度seo推廣計(jì)劃類型包括
  • 怎么學(xué)做淘寶電商網(wǎng)站嗎關(guān)鍵詞搜索排行榜
  • html5 公眾號(hào) 網(wǎng)站開發(fā)百度seo優(yōu)化價(jià)格
  • 專業(yè)做根雕的網(wǎng)站廣州百度搜索優(yōu)化
  • 備案的網(wǎng)站名稱寫什么深圳整站全網(wǎng)推廣
  • 大眾點(diǎn)評(píng)怎么做團(tuán)購網(wǎng)站廣告軟文外鏈平臺(tái)
  • 做網(wǎng)站需要數(shù)據(jù)儲(chǔ)存么深圳網(wǎng)站設(shè)計(jì)三把火
  • 做網(wǎng)站十大公司哪家好短視頻推廣渠道
  • 92素材網(wǎng)安卓優(yōu)化大師官網(wǎng)
  • 手機(jī)微信網(wǎng)站怎么做的好深圳網(wǎng)站設(shè)計(jì)十年樂云seo
  • 最好的網(wǎng)站制作公司百度快照是怎么做上去的
  • 自己如何開自己的商城黑帽seo培訓(xùn)網(wǎng)
  • 杭州建立網(wǎng)站長沙企業(yè)網(wǎng)站建設(shè)報(bào)價(jià)
  • 動(dòng)漫制作專業(yè)的高職實(shí)訓(xùn)室seo引擎搜索網(wǎng)站關(guān)鍵詞
  • 濟(jì)南外貿(mào)網(wǎng)站建設(shè)公司排名seo基礎(chǔ)入門免費(fèi)教程
  • 做網(wǎng)站和做軟件哪個(gè)賺錢丈哥seo博客工具
  • 網(wǎng)站投入費(fèi)用百度知道答題賺錢
  • 四川瑞通工程建設(shè)有限公司網(wǎng)站東莞谷歌推廣
  • 計(jì)算機(jī)做網(wǎng)站難嗎yandex搜索引擎
  • 河北省 政府網(wǎng)站 建設(shè)意見如何擁有自己的網(wǎng)站