成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go項目實戰|企業級項目用戶認證體系這么設計的

開發 前端
想要設計出一個能滿足企業級項目需求的用戶認證體系,我們需要從用戶體驗、安全和穩定性上來考慮,同時也要收集產品經理、前端開發對其在功能性上的要求,不能為了只考慮穩定、高效而忽略了用戶體驗。

這節課開始帶大家設計實現一個套支持多平臺登錄,Token泄露檢測、同平臺多設備登錄互踢功能的用戶認證體系,這套用戶認證體系既可以在你未來開發產品時直接應用,也可以在其基礎上根據需要擴展出其他功能.它會作為我們后面商城App后端服務的的用戶認證體系,同時又足夠獨立,能拿到自己的項目中去快速把用戶認證給搭建起來。

說到Token,很多人一開始想到的可能是JWT -- JSON Web Token。

JWT因為其本質是存儲在客戶端cookie中,發布出去后服務端無法對其進行主動過期等控制,所以應用場景跟這里介紹的用戶認證體系不一樣,我們今天介紹的這套用戶認證體系,在用戶體驗、安全性和穩定性上都會更完善,更適合在擁有C端用戶的產品上或者是擁有多個產品線的公司級項目中應用。

想要設計出一個能滿足企業級項目需求的用戶認證體系,我們需要從用戶體驗、安全和穩定性上來考慮,同時也要收集產品經理、前端開發對其在功能性上的要求,不能為了只考慮穩定、高效而忽略了用戶體驗。

從功能的用戶體驗、安全性和穩定性來看,通常一個足夠支撐企業級項目的認證系統要滿足一下要求:

  • 用戶體驗:

a.保證用戶登錄后,在較長時間內不需要重新登錄,比如15天或者30天內登錄過就不需要讓用戶再主動登錄。

b.支持多平臺登錄,用戶在App平臺上的登錄行為不會踢掉用戶在H5端的登錄狀態。

c.在同一平臺上,如果發生多設備登錄要能把老設備的登錄態踢掉。

  • 安全性:
  • 用戶認證用的Token不可偽造,除發放Token的服務端外無法自行生成Token。
  • Token 具有較快的過期機制(1~2 h),減少被人獲取Token后偽裝成用戶進行操作的幾率。
  • 能有發現機制,發現Token被竊取,或者客戶端存在舊Token未更新;
  • 穩定性:
  • Token 具有自解釋性,即自帶某些信息,在某些極端惡劣情況下,依然能提供最基本的服務。

用戶認證體系的實現思路和方案

為什么所有商用項目都需要用戶認證體系呢?最簡單的一個原因是:因為用戶的ID不能外漏。在產品內部與用戶相關的數據資產都是使用用戶ID標記用戶歸屬的,一旦外漏造成的風險和損失不可預估。

在我們設計的認證體系中,用戶登錄后返回給前端以下Token信息。

圖片

為什么有兩個Token

主要考慮下面三個因素:

  • 一個Token即負責認證又負責刷新,這種方式前端頁面會有并發請求的情況,Token 的刷新需要加鎖,會帶來很大的開銷;
  • 無法保證前端刷新 Token 的互斥時,會出現Token反復失效的情況;
  • 還有就是我們設計的refreshToken能幫助我們發現Token被盜和過期未更新的問題

Token信息的構成和存儲

服務端 Token 存儲的信息(服務端記錄的信息)如下:

用戶登錄授權,在給用戶發放Token的同時服務端會存儲三份信息,用于會話管理和認證。

圖片圖片

它們存儲的主要信息和其存儲方式如下:

圖片圖片

上面我們一直提到了用戶登錄平臺Platform、SessionId ,它們分別是什么呢?

  • Platform:是我們自己定義的用戶登錄平臺,比如H5、App、Web 之類的,用戶登錄時需要在Header頭中攜帶約定的Platform值,用于標記用戶的不同登錄端。這個字段的設置是為了保證不同端的登錄和Token刷新相互之間不會受到影響,避免在App上刷新Token,導致H5 的用戶Token失效的問題。
  • SessionId:會話ID,登錄后的唯一標識,Token刷新時不會改變會話ID,仍然設置為原SessionId,只有在用戶重新登錄后SessionId才會改變,項目可以使用它記錄一些與登錄行為關聯的數據。

Token驗證和刷新的流程

Token的驗證和刷新流程給大家準備了詳盡的UML活動圖和案例進行講解

圖片圖片


責任編輯:武曉燕 來源: 網管叨bi叨
相關推薦

2013-03-28 09:35:31

企業級系統

2023-03-29 07:49:05

企業級項目研發

2025-01-02 09:02:09

Go項目Token

2025-01-15 09:21:01

2011-04-14 09:49:16

Novell企業級LinuxSUSE

2025-02-10 09:03:29

2010-07-08 09:59:51

企業級項目開發

2010-05-25 15:05:30

企業項目組合管理

2025-03-06 01:00:55

架構推送服務編程語言

2018-09-14 16:59:32

2025-02-26 09:03:24

2015-03-09 11:20:25

雙因素認證寧盾DKEY

2010-09-25 17:18:13

企業級項目組合管理

2025-05-23 18:28:04

2015-08-13 22:25:52

OpenStack企業級云服務需求痛點

2014-09-24 13:32:41

企業號

2023-02-15 18:12:43

開發企業級CLI

2011-11-01 09:40:59

Dropbox企業級

2011-11-11 16:41:23

惠普激光打印機

2009-02-12 15:14:00

固態硬盤企業級用戶采購
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级高清视频 | 日本h片在线观看 | 精品国产一区二区三区日日嗨 | 日韩电影中文字幕 | 亚洲精品久久久一区二区三区 | 日本在线精品视频 | 看av片网站| 久久久久久国产精品久久 | 蜜桃官网| 国产福利视频网站 | 色999日韩 | 欧美日韩在线视频一区 | 日屁视频 | 成人福利在线观看 | 国产精品激情在线 | 日韩av在线免费 | 91精品一区 | 国产成人精品一区二区三区在线 | 久久精品91久久久久久再现 | 亚洲福利 | 久久久久久久国产精品视频 | av 一区二区三区 | 黄色在线免费播放 | 中文在线一区二区 | 国产黄色网| 国产视频1区 | 久久久国产一区二区三区 | 天天搞天天搞 | 免费a v网站 | 欧美在线国产精品 | 亚洲一区二区三区免费视频 | 色必久久 | 国产成人久久av免费高清密臂 | 亚洲女人天堂成人av在线 | 欧美精品影院 | 香蕉超碰 | 国产色网| 亚洲第一视频网站 | 视频在线一区二区 | av一区在线观看 | 一级黄色大片 |