成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

了解登錄中的JWT

Scott / 2777人閱讀

摘要:一旦用戶登錄,后續(xù)每個(gè)請(qǐng)求都將包含,允許用戶訪問該令牌允許的路由服務(wù)和資源。單點(diǎn)登錄是現(xiàn)在廣泛使用的的一個(gè)特性,因?yàn)樗拈_銷很小,并且可以輕松地跨域使用。用于在同意使用它們的各方之間共享信息,并且不是注冊(cè)的或公開的聲明。

1.JSON Web Token是什么

? ? JSON Web Token (JWT)是一個(gè)開放標(biāo)準(zhǔn)(RFC 7519),它定義了一種緊湊的、自包含的方式,用于作為JSON對(duì)象在各方之間安全地傳輸信息。該信息可以被驗(yàn)證和信任,因?yàn)樗菙?shù)字簽名的。

2.JSON Web Token有什么用

下列場(chǎng)景中使用JSON Web Token是很有用的:

Authorization (授權(quán)) : 這是使用JWT的最常見場(chǎng)景。一旦用戶登錄,后續(xù)每個(gè)請(qǐng)求都將包含JWT,允許用戶訪問該令牌允許的路由、服務(wù)和資源。單點(diǎn)登錄是現(xiàn)在廣泛使用的JWT的一個(gè)特性,因?yàn)樗拈_銷很小,并且可以輕松地跨域使用。
Information Exchange (信息交換) : 對(duì)于安全的在各方之間傳輸信息而言,JSON Web Tokens無疑是一種很好的方式。因?yàn)镴WTs可以被簽名,例如,用公鑰/私鑰對(duì),你可以確定發(fā)送人就是它們所說的那個(gè)人。另外,由于簽名是使用頭和有效負(fù)載計(jì)算的,您還可以驗(yàn)證內(nèi)容沒有被篡改。

3.JSON Web Token是什么樣的

JSON Web Token由三部分組成,它們之間用圓點(diǎn)(.)連接。這三部分分別是:

Header
Payload
Signature

因此,一個(gè)典型的JWT看起來是這個(gè)樣子的:

xxxxx.yyyyy.zzzzz

Header
header典型的由兩部分組成:token的類型(“JWT”)和算法名稱(比如:HMAC SHA256或者RSA等等)。
例如:
然后,用Base64對(duì)這個(gè)JSON編碼就得到JWT的第一部分

?

Payload
JWT的第二部分是payload,它包含聲明(要求)。聲明是關(guān)于實(shí)體(通常是用戶)和其他數(shù)據(jù)的聲明。聲明有三種類型: registered, public 和 private。

Registered claims : 這里有一組預(yù)定義的聲明,它們不是強(qiáng)制的,但是推薦。比如:iss (issuer), exp (expiration time), sub (subject), aud (audience)等。
Public claims : 可以隨意定義。
Private claims : 用于在同意使用它們的各方之間共享信息,并且不是注冊(cè)的或公開的聲明。

對(duì)payload進(jìn)行Base64編碼就得到JWT的第二部分

注意,不要在JWT的payload或header中放置敏感信息,除非它們是加密的。
?
Signature
為了得到簽名部分,你必須有編碼過的header、編碼過的payload、一個(gè)秘鑰,簽名算法是header中指定的那個(gè),然對(duì)它們簽名即可。
例如:

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

簽名是用于驗(yàn)證消息在傳遞過程中有沒有被更改,并且,對(duì)于使用私鑰簽名的token,它還可以驗(yàn)證JWT的發(fā)送方是否為它所稱的發(fā)送方。

典型模塊如下:

// Header
{
"alg": "HS256",
"typ": "JWT"
}
 
 
// Payload
{
// reserved claims
"sub": "1234567890",
"name": "John Doe",
"iat": "1516239022"
}
 
 
// $Signature
HS256(Base64(Header) + "." + Base64(Payload), "自定義密鑰kyey" )
 
 
// JWT
JWT = Base64(Header) + "." + Base64(Payload) + "." + $Signature
4.具體實(shí)現(xiàn)
public static String createJWT(Object subject, long ttlMillis) {
    //設(shè)置簽名算法為HS256
    SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
    long nowMillis = System.currentTimeMillis();
    Date now = new Date(nowMillis);
    JwtBuilder builder = Jwts.builder().setId("jwt").setIssuedAt(now).setSubject(JSONObject.toJSONString(subject)).signWith(signatureAlgorithm, secretKey);
    //設(shè)置過期時(shí)間
    if (ttlMillis >= 0L) {
        long expMillis = nowMillis + ttlMillis;
        Date exp = new Date(expMillis);
        builder.setExpiration(exp);
    }
    //生成jwt
    return builder.compact();
}

具體compact()方法即根據(jù)傳入的參數(shù)進(jìn)行處理? 最終得到j(luò)wt的字符串

eyJhbGci**I1NiJ9.eyJqdGkiOiJqd3QiL**DY2NTMxOH0.x9fNW**2fe4ht

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74494.html

相關(guān)文章

  • 使用JWT(Json Web Token)實(shí)現(xiàn)登錄認(rèn)證

    摘要:今天我們來結(jié)合實(shí)例給大家講述的實(shí)戰(zhàn)應(yīng)用,就是如何使用前端與后端實(shí)現(xiàn)用戶登錄鑒權(quán)認(rèn)證的過程。只用了一個(gè)串,建立前后端的驗(yàn)證的數(shù)據(jù)傳遞,實(shí)現(xiàn)了有效的登錄鑒權(quán)過程。 今天我們來結(jié)合實(shí)例給大家講述JWT(Json Web Token)的實(shí)戰(zhàn)應(yīng)用,就是如何使用前端Axios與后端PHP實(shí)現(xiàn)用戶登錄鑒權(quán)認(rèn)證的過程。 文中涉及的重要知識(shí)點(diǎn): axios異步請(qǐng)求:axios-基于Promise的HTT...

    Yu_Huang 評(píng)論0 收藏0
  • songEagle開發(fā)系列:Vue + Vuex + Koa 中使用JWT認(rèn)證

    摘要:一前言,是為了在網(wǎng)絡(luò)環(huán)境間傳遞聲明而執(zhí)行的一種基于的開放標(biāo)準(zhǔn)。用戶簽發(fā)添加中間件校驗(yàn)判斷是否可用獲取解密,獲取用戶名和認(rèn)證失敗中添加處理此處在開發(fā)時(shí)需要過濾掉登錄接口,否則會(huì)導(dǎo)致驗(yàn)證永遠(yuǎn)失敗。前端處理前端開發(fā)使用的是,發(fā)送請(qǐng)求使用的是。 一、前言 JWT(JSON Web Token),是為了在網(wǎng)絡(luò)環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn)(RFC 7519)。 JWT不是一個(gè)新...

    suosuopuo 評(píng)論0 收藏0
  • 說一說幾種登錄認(rèn)證方式,你用的哪一種

    摘要:登錄認(rèn)證幾乎是任何一個(gè)系統(tǒng)的標(biāo)配,系統(tǒng)客戶端等,好多都需要注冊(cè)登錄授權(quán)認(rèn)證。假設(shè)我們開發(fā)了一個(gè)電商平臺(tái),并集成了微信登錄,以這個(gè)場(chǎng)景為例,說一下的工作原理。微信網(wǎng)頁授權(quán)是授權(quán)碼模式的授權(quán)模式。 登錄認(rèn)證幾乎是任何一個(gè)系統(tǒng)的標(biāo)配,web 系統(tǒng)、APP、PC 客戶端等,好多都需要注冊(cè)、登錄、授權(quán)認(rèn)證。 場(chǎng)景說明 以一個(gè)電商系統(tǒng),假設(shè)淘寶為例,如果我們想要下單,首先需要注冊(cè)一個(gè)賬號(hào)。擁有了賬...

    idealcn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<