999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSON Web Token的無狀態賬戶系統的設計

2016-10-18 07:48:16李凱
現代計算機 2016年16期
關鍵詞:機制用戶

李凱

(西南科技大學,綿陽621000)

基于JSON Web Token的無狀態賬戶系統的設計

李凱

(西南科技大學,綿陽621000)

在Web服務中,對用戶身份的驗證和標識是不可缺少的。由于過去基于Session機制存在共享和域限制的問題,使用token成為新的選擇。使用基于JSON Web Token的機制,將用戶信息轉換為一個加密的token,保存于客戶端中,解決共享和域的限制問題,而且將服務器的內存壓力分攤到客戶端中。經實驗表明,該方案對于用戶驗證識別是行之有效的。

JSON Web Token;無狀態;賬戶系統

0 引言

在過去的賬戶體系中,一般使用Session的機制以標識用戶。但是,由于應用場景的不斷復雜化,Session機制已經不能再足以應對。主要問題有:

(1)隨著分布式技術的大量應用,當服務器處在分布式的環境下時,相互之間不能共享Session,這就導致了用戶的登錄會話不能良好的保持。

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

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

一般使用Sticky Sessions解決Session共享的問題,但會增加服務器的壓力,而且Session的機制本身就要占用服務器大量的內存。

JWT是基于token的驗證方式,其在為用戶生成標識其身份的token,一次性把所有用戶的標識信息保存于此token中。不同于Session將信息保存于服務器內存中,而是將服務器內存的壓力分攤到客戶端中,讓客戶端保存此token。并且token獨立于服務器,從而脫離了域的限制,在網絡技術高速發展的今天,提供了一種新的驗證方式。

1 JSON Web Token

JSON Web Token下簡稱JWT,是一個基于RFC 7519的信息傳送協議,由三部分構成,Header,Payload,Signature。

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

2 無狀態賬戶體系的設計

2.1系統基本要求

服務器:用于處理客戶端的請求。

數據庫:用于保存用戶的數據。

緩存:用于保存頒發給用戶的授權token的密鑰。

2.2實現基本設計

首先,驗證用戶通過后,為其頒發一個其獨有的token憑證,在此憑證中包含了用戶的基本信息等數據。此后,客戶端應將此token附加在HTTP請求的頭部分,訪問服務器的其他資源,服務器即可以從其token中獲得用戶的基本信息,并做出相應的響應。

圖1 用戶數據請求

另外,從安全的角度考慮,每一個頒發的token都應有一定的時間限制,防止因token泄露導致用戶個人數據受到威脅。然而對于經常使用的用戶,反復的登錄會帶來不良的用戶體驗,此問題的解決依賴于access token和refresh token。

access token,用戶訪問憑證,用于標識用戶。其包含了用戶的基本信息,是代表某個用戶的唯一標識。其有一定的使用時間限制,在此時間限制之內可以使用任意次數。

refresh token,token刷新憑證,用于access token的更新。一個refresh token對應一個access token,其生存時間長于access token,但是只能使用一次。

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

2.3處理流程描述

(1)用戶登錄

圖2 用戶登錄

如圖2所示,服務器在收到用戶的憑證,如用戶名和密碼之后,先對其進行身份驗證,若通過了驗證,則依照JWT協議為其頒發access token和refresh token,并保存access token、密鑰鍵值對到緩存中,便于后面的解密。若沒有通過身份驗證,則不為其頒發token。

(2)Token的刷新

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

(3)用戶登出

如圖4為用戶請求登出的流程圖。其在驗證accessToken合法之后,即可展開對用戶數據的后續的清理工作。

3 實驗驗證

對上面的設計進行了實際的編碼,并對其對了相應的驗證。事實證明,上述的設計是實際可行的。由于實際的token有一定的長度,故在表1中,對accessToken和refreshToken進行了簡寫。

圖4 用戶登出

表1 實驗驗證步驟和結果

4 結語

本文著重介紹了基于JWT協議的賬戶體系的整體設計,其解決了Session機制下面所存在的問題,降低了開發網絡服務系統的復雜性和成本。本文是對于利用JWT協議構建賬戶體系的探索,為Web服務的開發提供參考。

[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-),男,四川自貢人,在讀本科,研究方向為移動互聯網技術

2016-03-31

2016-05-21

猜你喜歡
機制用戶
構建“不敢腐、不能腐、不想腐”機制的思考
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
定向培養 還需完善安置機制
中國衛生(2016年9期)2016-11-12 13:28:08
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: yjizz国产在线视频网| 2021国产精品自产拍在线| 亚洲无码高清一区二区| 国产91无码福利在线| 人妻熟妇日韩AV在线播放| 怡春院欧美一区二区三区免费| 国产亚洲现在一区二区中文| 久996视频精品免费观看| 亚洲高清无码精品| 国产在线观看91精品亚瑟| 国产jizz| 国产素人在线| 青青久久91| 欧美三级不卡在线观看视频| 美女被躁出白浆视频播放| 91视频免费观看网站| 亚洲第一福利视频导航| 一本大道视频精品人妻| 丁香亚洲综合五月天婷婷| 亚洲色图综合在线| 欧美在线视频a| 国内丰满少妇猛烈精品播| 91精品情国产情侣高潮对白蜜| 亚洲精品无码av中文字幕| 99久久性生片| 三区在线视频| 国产亚洲第一页| a级毛片毛片免费观看久潮| 亚洲AV成人一区国产精品| 久久精品国产一区二区小说| 精品视频福利| 成人精品免费视频| 亚洲毛片在线看| 亚洲中字无码AV电影在线观看| 国产一级毛片yw| 伊人五月丁香综合AⅤ| 国产菊爆视频在线观看| 亚洲精品天堂在线观看| 国产91av在线| 亚洲成a人片7777| 一本久道久久综合多人| 国产成人无码AV在线播放动漫| 色网站免费在线观看| 一区二区欧美日韩高清免费| 国产伦精品一区二区三区视频优播 | 狠狠色综合网| 人人91人人澡人人妻人人爽 | 五月六月伊人狠狠丁香网| 亚洲免费播放| 国产精品久久久久鬼色| 尤物国产在线| 毛片免费在线视频| 亚洲国产成熟视频在线多多| 呦女亚洲一区精品| 老司机久久精品视频| vvvv98国产成人综合青青| 欧美一级视频免费| 狠狠综合久久久久综| 亚洲AV无码久久天堂| 欧美日韩在线亚洲国产人| 少妇极品熟妇人妻专区视频| 国产欧美日韩专区发布| 国产毛片高清一级国语 | 亚洲av片在线免费观看| 欧美伊人色综合久久天天| 一区二区自拍| 亚洲婷婷在线视频| 日本人真淫视频一区二区三区| 凹凸国产分类在线观看| 亚洲精品日产AⅤ| 在线中文字幕日韩| 国内精自视频品线一二区| 欧美成人精品在线| 国产91在线免费视频| 波多野结衣的av一区二区三区| 毛片三级在线观看| 狠狠亚洲婷婷综合色香| 九九热精品在线视频| 亚洲人人视频| 99久久精品免费看国产电影| 亚洲丝袜第一页| 91视频首页|