国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于token的身份認證及自動續(xù)期的解決方案

這篇具有很好參考價值的文章主要介紹了基于token的身份認證及自動續(xù)期的解決方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

? ? B/S架構(gòu)大家應(yīng)該都不陌生,web1.0時代,用戶通過個人電腦瀏覽網(wǎng)站,單項獲取信息,比如我們?yōu)g覽新聞,查閱資料等。web2.0很快就到來,和1.0相比,用戶可以隨時隨地分享自己的信息。這個時候就涉及到了我們的身份認證。當我們使用http無狀態(tài)請求訪問資源服務(wù)的時候,服務(wù)端是如何知道我們的身份的,我們今天就來聊一聊。????????????

傳統(tǒng)方式下的身份認證

? ?? ?傳統(tǒng)方式的身份認證,我們要從cookie和session說起來,我們先回顧一下cookie和session是有什么特點吧。

  • Cookie:存儲在客戶端的,客戶端專門存東西的一個標識。

      1.能存儲的東西很少,基本上只能存儲4k左右的東西
    
      2.能被手動清除,不續(xù)期的情況下,只有20分鐘的有效期
    
      3.Cookie安全問題,別人能從本地Cookie中獲取信息
    
      4.Cookie不能直接存儲中文,如果需要,則需要進行url轉(zhuǎn)碼
    
      5.不能跨域,不能跨域,不能跨域。
    
  • Session:存儲在服務(wù)器端的,服務(wù)端專門存東西的一個標識。

      1.安全性:Session的安全性比Cookie的安全性要高
    
      2.性能:當服務(wù)器訪問較多,比較占用性能
    
      3.生命周期:異常關(guān)機會造成Session的銷毀,默認存儲30分鐘
    
      4.Session的鈍化以及活化
    
           鈍化:服務(wù)器正常關(guān)閉后,tomcat會自動將Session數(shù)據(jù)寫入硬盤的文件中
    
           活化:服務(wù)器再次啟動后,從文件中加載數(shù)據(jù)到Session中
    
       5.瀏覽器關(guān)閉后再次重啟SessionId的地址值不為同一個
    
       4.訪問范圍:Session為一個瀏覽器共享
    
                  Cookie為多個瀏覽器共享
    

? ?? ?基于 cookie、session 的身份認證中,用戶登錄后,服務(wù)器會為登錄用戶創(chuàng)建一個 session,cookie的驗證是有狀態(tài)的,sessionid 會保存 在cookie 中。當用戶登錄成功后,之后的每次請求都會攜帶cookie。服務(wù)器通過 cookie 中的 sessionid 找到內(nèi)存中的 session 數(shù)據(jù),來驗證用戶身份,從而在響應(yīng)中返回相應(yīng)的數(shù)據(jù)。我們可以參照下圖進行理解

基于token的身份認證及自動續(xù)期的解決方案
????這個圖看著是沒什么問題了對不,以前大多數(shù)B/S架構(gòu)都采用這種實現(xiàn)方式,有的同學(xué)就說了:“我現(xiàn)在這么實現(xiàn)也ok啊,我干嘛還要去研究那個token呢?”,那你們可以想一想,當你的后端服務(wù)需要水平擴展的時候,你的session怎么辦?當然我們也是有一些常規(guī)做法的。例如服務(wù)之間的session同步方案、分布式緩存方案、用戶負載方案。我們一個一個來說。

1.session同步,就是在用戶登錄成功產(chǎn)生session之后,在你的各個服務(wù)上進行session同步,保證請求能夠暢通訪問其他服務(wù),這個開銷不得不說是很大的。
2.分布式緩存,將session存儲在分布式緩存中,所有服務(wù)都從緩存中獲取用戶session。這是在集群中增加了中間件,代價也不小。
3.用戶負載,這是一個偷奸耍滑的方案,通過nginx負載,將同一個用戶的請求指向最初登錄的那個服務(wù)器。

token如何實現(xiàn)身份認證

? ?? ?前面我們說了session方案需要考慮服務(wù)擴展問題,那么有沒有更好的解決方案呢?這就得從我們的Jwt(json web token)說起了,現(xiàn)在流行的應(yīng)用架構(gòu),很多都用使用jwt基于token實現(xiàn)身份認證的。什么是Jwt前面的文章有解釋。那么如何實現(xiàn)呢,我們簡單的說明一下token實現(xiàn)身份認證的步驟。

  • 用戶登錄成功服務(wù)端返回token
  • 之后每次用戶請求都攜帶token,在Authorization Header中。
  • 后端服務(wù)取出token進行decode,判斷有效期及失效策略。
  • 返回對應(yīng)的成功失敗

? ?? ?常用的token身份認證方案有兩種,一種是單token方案,另外一種是雙token方案。下面我們就來分別看圖理解一下兩種方案的認證及續(xù)期過程。

單token續(xù)期方案

基于token的身份認證及自動續(xù)期的解決方案

1.用戶登錄,服務(wù)端返回生成的Jwt,攜帶必要的信息。
2.用戶再次訪問時均需要在Authorization Header中攜帶Jwt。
3.服務(wù)端有配置好的token失效時間或者次數(shù),還有重新登錄期限。每次登錄會記錄當前登錄時間。
4.用戶攜帶token訪問時,服務(wù)端根據(jù)token失效時間和重新登錄期限判斷返回對應(yīng)代碼
5.當token有效時,服務(wù)端返回對應(yīng)資源。
6.當token失效時,前端拿到錯誤代碼后重新請求refresh token接口進行token刷新,該接口會返回新的有效token給前端。
7.前端下次請求會攜帶刷新后的新token訪問。
8.當某次訪問時,服務(wù)端判斷token使用時長超過了定義好的登錄期限,則返回重新登錄錯誤代碼給前端,前端拿到代碼后跳轉(zhuǎn)至登錄頁面。

雙token續(xù)期方案

基于token的身份認證及自動續(xù)期的解決方案

1.用戶登錄返回access_token、refresh_token。
2.用戶請求資源時攜帶access_token。
3.當access_token有效時,返回對應(yīng)的資源。
4.當服務(wù)端校驗access_token失效,則返回對應(yīng)錯誤代碼。
5.前端拿到access_token失效對應(yīng)的錯誤代碼,發(fā)起刷新token請求,本次請求攜帶之前緩存的refresh_token。
6.服務(wù)端拿到refresh_token,判斷是否有效,失效則返回重新登錄錯誤代碼。
7.前端拿到重新登錄錯誤代碼則跳轉(zhuǎn)登錄頁面。

小結(jié)

? ?? ?可以看到,使用token進行身份認證,不僅將服務(wù)端的存儲壓力分攤到了客戶端上,并且可以讓服務(wù)端進行毫無顧及的擴展,除此之外也不存在跨域問題,對于移動端也更加友好,不僅如此,Jwt的加密使得這種方案在安全性上更上一層樓。因此,各位架構(gòu)師們,這是一種不得不掌握的身份認證方案。
點贊收藏,富婆包養(yǎng)??文章來源地址http://www.zghlxwxcb.cn/news/detail-415449.html

到了這里,關(guān)于基于token的身份認證及自動續(xù)期的解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 使用Token方式實現(xiàn)用戶身份鑒權(quán)認證

    使用Token方式實現(xiàn)用戶身份鑒權(quán)認證

    Token,也稱為“令牌”,是服務(wù)端生成的一串字符串,以作客戶端進行請求的一個令牌,當?shù)谝淮蔚卿浐?,服?wù)器生成一個Token便將此Token返回給客戶端,以后客戶端只需帶上這個Token前來請求數(shù)據(jù)即可,無需再次帶上用戶名和密碼。比如如下形式: 39faf62271944fe48c4f1d69be71bc9a 傳

    2024年02月11日
    瀏覽(19)
  • 【Python】Python Flask token身份認證(附完整代碼)

    【Python】Python Flask token身份認證(附完整代碼)

    前言 Python Flask是一個使用Python編寫的輕量級Web應(yīng)用框架,它可以非常方便地搭建Web應(yīng)用。在Web應(yīng)用中,經(jīng)常需要進行身份認證,以確保只有授權(quán)用戶才能訪問某些資源。本文將介紹如何使用token進行身份認證,以及如何在Python Flask中實現(xiàn)token身份認證。 一、什么是token身份認

    2024年02月10日
    瀏覽(24)
  • 在springBoot中使用JWT實現(xiàn)1.生成token,2.接收前端token進行身份認證,3.通過token獲取對象信息

    在springBoot中使用JWT實現(xiàn)1.生成token,2.接收前端token進行身份認證,3.通過token獲取對象信息

    第一步:引入依賴 第二步:創(chuàng)建工具類 在until包下創(chuàng)建TokenUntil類,用于生成token 利用id,和password作為參數(shù)生成token JWt為這個包下的對象 第三步:token使用 在向前端返回的數(shù)據(jù)對象中添加token屬性 ?是serve層中調(diào)用工具類方法將生成的token放到返回的數(shù)據(jù)中 注意:這里獲取到

    2024年02月04日
    瀏覽(93)
  • 一種基于區(qū)塊鏈的身份認證方法

    摘 要: 零信任理念的提出和發(fā)展,提高了網(wǎng)絡(luò)信息系統(tǒng)數(shù)據(jù)訪問的可控性和可信性,有效增強了系統(tǒng)數(shù)據(jù)的安全性。但是,總不信任,永遠驗證的設(shè)計原則,也給用戶進行數(shù)據(jù)訪問帶來了巨大的挑戰(zhàn),特別是在廣域、異地身份驗證情況下,嚴重影響用戶訪問數(shù)據(jù)的效率。針

    2024年02月05日
    瀏覽(21)
  • SpringBoot 基于 OAuth2 統(tǒng)一身份認證流程詳解

    SpringBoot 基于 OAuth2 統(tǒng)一身份認證流程詳解

    了解OAUTH2統(tǒng)一認證基本概念 了解OAUTH2協(xié)議流程 了解OAUTH2各種模式類型 了解Spring Security OAuth設(shè)計 2. 分析 傳統(tǒng)登陸認證介紹 單點登陸認證介紹 OAuth2簡介 OAuth2角色 OAuth2協(xié)議流程介紹 OAuth2授權(quán)類型 OAuth2授權(quán)碼模式流程 OAuth2簡化模式 OAuth2密碼模式 OAuth2客戶端模式 Spring Security

    2024年02月15日
    瀏覽(28)
  • 畢業(yè)設(shè)計:基于Web的統(tǒng)一身份認證信息系統(tǒng) python

    畢業(yè)設(shè)計:基于Web的統(tǒng)一身份認證信息系統(tǒng) python

    目錄 前言 項目背景 設(shè)計思路 2.1 用戶口令認證 2.2?基于智能卡的認證 2.3?統(tǒng)一身份認證 相關(guān)代碼 更多幫助 ? ? ??大四是整個大學(xué)期間最忙碌的時光,一邊要忙著備考或?qū)嵙?xí)為畢業(yè)后面臨的就業(yè)升學(xué)做準備,一邊要為畢業(yè)設(shè)計耗費大量精力。近幾年各個學(xué)校要求的畢設(shè)項目越

    2024年02月21日
    瀏覽(27)
  • 安全開發(fā):身份認證方案之 Google 身份驗證器和基于時間的一次性密碼 TOTP 算法

    安全開發(fā):身份認證方案之 Google 身份驗證器和基于時間的一次性密碼 TOTP 算法

    參考資料在文末注明,如本文有錯漏歡迎評論區(qū)指出?? 目前很多應(yīng)用都逐步采用了雙因子認證或者說MFA認證方案,因此本文介紹一下背后的機制和 TOTP算法 原理。使用TOTP算法,只要滿足兩個條件:1)基于相同的密鑰;2)時鐘同步;只需要事先約定好密鑰,TOTP算法就可以保

    2024年02月04日
    瀏覽(22)
  • 3-3. SpringBoot項目集成【用戶身份認證】實戰(zhàn) 【全流程篇】基于JWT+雙重檢查的登錄+登出+攔截器

    書接上文 實戰(zhàn)核心篇,我們已經(jīng) 把JWT的核心代碼實現(xiàn)了! 文中不止是代碼實現(xiàn),更是使用到了設(shè)計原則,提升大家的內(nèi)功心法。并且拋轉(zhuǎn)引玉的實現(xiàn)了RSA和HMAC兩種算法,還沒看過的同學(xué),建議先看上文。所以對于 基于JWT的Token用戶身份認證機制 來說,剩下的就是與接口結(jié)

    2023年04月16日
    瀏覽(18)
  • 統(tǒng)一身份認證,構(gòu)建數(shù)字時代的安全壁壘——統(tǒng)一身份認證介紹、原理和實現(xiàn)方法

    隨著數(shù)字化時代的來臨,個人和機構(gòu)在互聯(lián)網(wǎng)上的活動越來越頻繁,對于身份認證的需求也愈發(fā)迫切。為了有效應(yīng)對身份欺詐、數(shù)據(jù)泄露等問題,統(tǒng)一身份認證(Unified Identity Authentication)應(yīng)運而生。 在本文博主將介紹統(tǒng)一身份認證的概念、原理以及其具體的實現(xiàn)方案。 統(tǒng)一

    2024年02月03日
    瀏覽(29)
  • 身份認證——802.1x認證和MAC認證講解

    身份認證——802.1x認證和MAC認證講解

    目錄 802.1x基礎(chǔ) EAP(Extensible Authentication Protocol)可擴展認證協(xié)議 EAPoL(EAP over LAN)局域網(wǎng)可擴展認證協(xié)議 802.1x體系架構(gòu) 受控端口的受控方式 802.1x認證 802.1x認證觸發(fā)方式 客戶端退出認證 802.1x認證方式 MAC認證 802.1x認證又稱為EAPOE(Extensible Authentication Protocol Over Ethernet)認證

    2024年02月03日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包