亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JSON Web Token的無(wú)狀態(tài)賬戶系統(tǒng)的設(shè)計(jì)

        2016-10-18 07:48:16李凱
        現(xiàn)代計(jì)算機(jī) 2016年16期
        關(guān)鍵詞:機(jī)制用戶

        李凱

        (西南科技大學(xué),綿陽(yáng)621000)

        基于JSON Web Token的無(wú)狀態(tài)賬戶系統(tǒng)的設(shè)計(jì)

        李凱

        (西南科技大學(xué),綿陽(yáng)621000)

        在Web服務(wù)中,對(duì)用戶身份的驗(yàn)證和標(biāo)識(shí)是不可缺少的。由于過(guò)去基于Session機(jī)制存在共享和域限制的問(wèn)題,使用token成為新的選擇。使用基于JSON Web Token的機(jī)制,將用戶信息轉(zhuǎn)換為一個(gè)加密的token,保存于客戶端中,解決共享和域的限制問(wèn)題,而且將服務(wù)器的內(nèi)存壓力分?jǐn)偟娇蛻舳酥?。?jīng)實(shí)驗(yàn)表明,該方案對(duì)于用戶驗(yàn)證識(shí)別是行之有效的。

        JSON Web Token;無(wú)狀態(tài);賬戶系統(tǒng)

        0 引言

        在過(guò)去的賬戶體系中,一般使用Session的機(jī)制以標(biāo)識(shí)用戶。但是,由于應(yīng)用場(chǎng)景的不斷復(fù)雜化,Session機(jī)制已經(jīng)不能再足以應(yīng)對(duì)。主要問(wèn)題有:

        (1)隨著分布式技術(shù)的大量應(yīng)用,當(dāng)服務(wù)器處在分布式的環(huán)境下時(shí),相互之間不能共享Session,這就導(dǎo)致了用戶的登錄會(huì)話不能良好的保持。

        (2)RESTful的思想也正逐步被廣泛使用。但是,使用Session的機(jī)制會(huì)同RESTful的“無(wú)狀態(tài)”的原則相矛盾,引入新的“狀態(tài)”。

        (3)在實(shí)際的生產(chǎn)中,API服務(wù)器和App服務(wù)器可能是不同的服務(wù)器。由于Cookie的域的限制,處于后端的App服務(wù)器使用儲(chǔ)存在前端App服務(wù)器中的Session是比較困難的。

        一般使用Sticky Sessions解決Session共享的問(wèn)題,但會(huì)增加服務(wù)器的壓力,而且Session的機(jī)制本身就要占用服務(wù)器大量的內(nèi)存。

        JWT是基于token的驗(yàn)證方式,其在為用戶生成標(biāo)識(shí)其身份的token,一次性把所有用戶的標(biāo)識(shí)信息保存于此token中。不同于Session將信息保存于服務(wù)器內(nèi)存中,而是將服務(wù)器內(nèi)存的壓力分?jǐn)偟娇蛻舳酥校尶蛻舳吮4娲藅oken。并且token獨(dú)立于服務(wù)器,從而脫離了域的限制,在網(wǎng)絡(luò)技術(shù)高速發(fā)展的今天,提供了一種新的驗(yàn)證方式。

        1 JSON Web Token

        JSON Web Token下簡(jiǎn)稱JWT,是一個(gè)基于RFC 7519的信息傳送協(xié)議,由三部分構(gòu)成,Header,Payload,Signature。

        Header部分用于描述JWT使用的加密的選項(xiàng)和其他附加選項(xiàng)。Payload部分會(huì)包含一些數(shù)據(jù),這些數(shù)據(jù)是作為JWT的附加元數(shù)據(jù)。Signature是按照Header部分指明的算法,將通過(guò)Base64URL編碼的Header和Payload部分進(jìn)行簽名,防止token被惡意的篡改。

        2 無(wú)狀態(tài)賬戶體系的設(shè)計(jì)

        2.1系統(tǒng)基本要求

        服務(wù)器:用于處理客戶端的請(qǐng)求。

        數(shù)據(jù)庫(kù):用于保存用戶的數(shù)據(jù)。

        緩存:用于保存頒發(fā)給用戶的授權(quán)token的密鑰。

        2.2實(shí)現(xiàn)基本設(shè)計(jì)

        首先,驗(yàn)證用戶通過(guò)后,為其頒發(fā)一個(gè)其獨(dú)有的token憑證,在此憑證中包含了用戶的基本信息等數(shù)據(jù)。此后,客戶端應(yīng)將此token附加在HTTP請(qǐng)求的頭部分,訪問(wèn)服務(wù)器的其他資源,服務(wù)器即可以從其token中獲得用戶的基本信息,并做出相應(yīng)的響應(yīng)。

        圖1 用戶數(shù)據(jù)請(qǐng)求

        另外,從安全的角度考慮,每一個(gè)頒發(fā)的token都應(yīng)有一定的時(shí)間限制,防止因token泄露導(dǎo)致用戶個(gè)人數(shù)據(jù)受到威脅。然而對(duì)于經(jīng)常使用的用戶,反復(fù)的登錄會(huì)帶來(lái)不良的用戶體驗(yàn),此問(wèn)題的解決依賴于access token和refresh token。

        access token,用戶訪問(wèn)憑證,用于標(biāo)識(shí)用戶。其包含了用戶的基本信息,是代表某個(gè)用戶的唯一標(biāo)識(shí)。其有一定的使用時(shí)間限制,在此時(shí)間限制之內(nèi)可以使用任意次數(shù)。

        refresh token,token刷新憑證,用于access token的更新。一個(gè)refresh token對(duì)應(yīng)一個(gè)access token,其生存時(shí)間長(zhǎng)于access token,但是只能使用一次。

        當(dāng)用戶登錄時(shí),先為此用戶生成一個(gè)隨機(jī)的密鑰,再使用這個(gè)密鑰為其分配一個(gè)access token和refresh token,并保存密鑰到緩存之中,便于此后的token的解密。當(dāng)access token將要過(guò)期時(shí),客戶端即可以通過(guò)refresh token重新獲得一個(gè)新的access token和refresh token,這樣就延長(zhǎng)了access token的過(guò)期時(shí)間,同時(shí),原有的token都不再合法,此后的數(shù)據(jù)交互則替換原有的,將新頒發(fā)的access token附加在請(qǐng)求上。而且,如果保持一定的token刷新頻率,由于舊的token會(huì)很快地過(guò)期,提高了系統(tǒng)的安全性。

        2.3處理流程描述

        (1)用戶登錄

        圖2 用戶登錄

        如圖2所示,服務(wù)器在收到用戶的憑證,如用戶名和密碼之后,先對(duì)其進(jìn)行身份驗(yàn)證,若通過(guò)了驗(yàn)證,則依照J(rèn)WT協(xié)議為其頒發(fā)access token和refresh token,并保存access token、密鑰鍵值對(duì)到緩存中,便于后面的解密。若沒(méi)有通過(guò)身份驗(yàn)證,則不為其頒發(fā)token。

        (2)Token的刷新

        如圖3為token刷新的流程圖。驗(yàn)證accessToken和refreshToken的合法性的key可以從緩存中通過(guò)accessToken獲得。驗(yàn)證通過(guò)后,清除舊的key并為其頒發(fā)新的token,保存新的key。若未通過(guò)驗(yàn)證,則拒絕為其頒發(fā)新的token,要求重新登錄,獲得授權(quán)。

        (3)用戶登出

        如圖4為用戶請(qǐng)求登出的流程圖。其在驗(yàn)證accessToken合法之后,即可展開(kāi)對(duì)用戶數(shù)據(jù)的后續(xù)的清理工作。

        3 實(shí)驗(yàn)驗(yàn)證

        對(duì)上面的設(shè)計(jì)進(jìn)行了實(shí)際的編碼,并對(duì)其對(duì)了相應(yīng)的驗(yàn)證。事實(shí)證明,上述的設(shè)計(jì)是實(shí)際可行的。由于實(shí)際的token有一定的長(zhǎng)度,故在表1中,對(duì)accessToken和refreshToken進(jìn)行了簡(jiǎn)寫(xiě)。

        圖4 用戶登出

        表1 實(shí)驗(yàn)驗(yàn)證步驟和結(jié)果

        4 結(jié)語(yǔ)

        本文著重介紹了基于JWT協(xié)議的賬戶體系的整體設(shè)計(jì),其解決了Session機(jī)制下面所存在的問(wèn)題,降低了開(kāi)發(fā)網(wǎng)絡(luò)服務(wù)系統(tǒng)的復(fù)雜性和成本。本文是對(duì)于利用JWT協(xié)議構(gòu)建賬戶體系的探索,為Web服務(wù)的開(kāi)發(fā)提供參考。

        [1]Bradley J,Sakimura N,Jones M.JSON Web Token(JWT)[J],2015.

        [2]Jones M B.The Emerging JSON-Based Identity Protocol Suite[C]//W3C Workshop on Identity in the Browser.2011:1-3.

        [3]Zheng K,Jiang W.A Token Authentication Solution for Hadoop Based on Kerberos Pre-Authentication[C].Data Science and Advanced Analytics(DSAA),2014 International Conference on.IEEE,2014:354-360.

        [4]Peng D,Li C,Huo H.An Extended Username Token-based Approach for REST-style Web Service Security Authentication[C].Computer Science and Information Technology,2009.ICCSIT 2009.2nd IEEE International Conference on.IEEE,2009:582-586.

        Design of Stateless Account System Based on JSON Web Token

        LI Kai
        (Southwest University of Science and Technology,Mianyang621000)

        Authentication and identification of users'identity is indispensable in the Web service.Token has become a new choice because of the problems of sharing and domain constraint based on Session mechanism in the past.Uses the mechanism based on JSON web token,the users'information will be transformed into an encrypted token and stored in the client.This mechanism not only solves the problem of sharing and domain constraint,but also allocates the memory pressure to the client.The experiments show that this scheme is effective for users'authentication and identification.

        JSON Web Token;Statelessness;Account System

        1007-1423(2016)16-0000-04DOI:10.3969/j.issn.1007-1423.2016.16.017

        李凱(1995-),男,四川自貢人,在讀本科,研究方向?yàn)橐苿?dòng)互聯(lián)網(wǎng)技術(shù)

        2016-03-31

        2016-05-21

        猜你喜歡
        機(jī)制用戶
        構(gòu)建“不敢腐、不能腐、不想腐”機(jī)制的思考
        自制力是一種很好的篩選機(jī)制
        文苑(2018年21期)2018-11-09 01:23:06
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        定向培養(yǎng) 還需完善安置機(jī)制
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        破除舊機(jī)制要分步推進(jìn)
        Camera360:拍出5億用戶
        100萬(wàn)用戶
        如何獲取一億海外用戶
        无码人妻久久久一区二区三区| 污污内射在线观看一区二区少妇| 久久精品成人一区二区三区| 国产精品永久久久久久久久久| 成人午夜特黄aaaaa片男男| 久久久久亚洲av无码专区| 国产亚洲欧美在线播放网站| 精品人妻av区乱码| 国产精品自拍午夜伦理福利| 丰满人妻猛进入中文字幕| 亚洲综合天堂av网站在线观看| 免费成人电影在线观看| 亚洲一区二区三区无码国产| 免费看奶头视频的网站| 国产av一区二区凹凸精品| 人妻中出中文字幕在线| 亚洲国产综合精品中久| 国产高清乱码又大又圆| 女人下面毛多水多视频| 国产一区二区三区在线观看精品| 精品一级毛片| 亚洲AV日韩Av无码久久| 午夜亚洲精品一区二区| 国产白浆一区二区三区性色| 久久精品国产69国产精品亚洲| 亚洲人成电影在线无码| 精品综合久久久久久99| 亚洲色图视频在线观看,| 熟女一区二区国产精品| 国产精久久一区二区三区| 成人三级a视频在线观看| 国产精品无码久久久久免费AV| 亚洲av色在线观看网站| 九九久久精品一区二区三区av| 99伊人久久精品亚洲午夜| 久久久精品国产亚洲av网深田| 久久99热国产精品综合| 999久久久无码国产精品| 亚洲国产福利精品一区二区| 亚洲av乱码国产精品观看麻豆| 国产高清成人午夜视频|