偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Go項(xiàng)目實(shí)戰(zhàn)|企業(yè)級(jí)項(xiàng)目用戶認(rèn)證體系這么設(shè)計(jì)的

開(kāi)發(fā) 前端
想要設(shè)計(jì)出一個(gè)能滿足企業(yè)級(jí)項(xiàng)目需求的用戶認(rèn)證體系,我們需要從用戶體驗(yàn)、安全和穩(wěn)定性上來(lái)考慮,同時(shí)也要收集產(chǎn)品經(jīng)理、前端開(kāi)發(fā)對(duì)其在功能性上的要求,不能為了只考慮穩(wěn)定、高效而忽略了用戶體驗(yàn)。

這節(jié)課開(kāi)始帶大家設(shè)計(jì)實(shí)現(xiàn)一個(gè)套支持多平臺(tái)登錄,Token泄露檢測(cè)、同平臺(tái)多設(shè)備登錄互踢功能的用戶認(rèn)證體系,這套用戶認(rèn)證體系既可以在你未來(lái)開(kāi)發(fā)產(chǎn)品時(shí)直接應(yīng)用,也可以在其基礎(chǔ)上根據(jù)需要擴(kuò)展出其他功能.它會(huì)作為我們后面商城App后端服務(wù)的的用戶認(rèn)證體系,同時(shí)又足夠獨(dú)立,能拿到自己的項(xiàng)目中去快速把用戶認(rèn)證給搭建起來(lái)。

說(shuō)到Token,很多人一開(kāi)始想到的可能是JWT -- JSON Web Token。

JWT因?yàn)槠浔举|(zhì)是存儲(chǔ)在客戶端cookie中,發(fā)布出去后服務(wù)端無(wú)法對(duì)其進(jìn)行主動(dòng)過(guò)期等控制,所以應(yīng)用場(chǎng)景跟這里介紹的用戶認(rèn)證體系不一樣,我們今天介紹的這套用戶認(rèn)證體系,在用戶體驗(yàn)、安全性和穩(wěn)定性上都會(huì)更完善,更適合在擁有C端用戶的產(chǎn)品上或者是擁有多個(gè)產(chǎn)品線的公司級(jí)項(xiàng)目中應(yīng)用。

想要設(shè)計(jì)出一個(gè)能滿足企業(yè)級(jí)項(xiàng)目需求的用戶認(rèn)證體系,我們需要從用戶體驗(yàn)、安全和穩(wěn)定性上來(lái)考慮,同時(shí)也要收集產(chǎn)品經(jīng)理、前端開(kāi)發(fā)對(duì)其在功能性上的要求,不能為了只考慮穩(wěn)定、高效而忽略了用戶體驗(yàn)。

從功能的用戶體驗(yàn)、安全性和穩(wěn)定性來(lái)看,通常一個(gè)足夠支撐企業(yè)級(jí)項(xiàng)目的認(rèn)證系統(tǒng)要滿足一下要求:

  • 用戶體驗(yàn):

a.保證用戶登錄后,在較長(zhǎng)時(shí)間內(nèi)不需要重新登錄,比如15天或者30天內(nèi)登錄過(guò)就不需要讓用戶再主動(dòng)登錄。

b.支持多平臺(tái)登錄,用戶在App平臺(tái)上的登錄行為不會(huì)踢掉用戶在H5端的登錄狀態(tài)。

c.在同一平臺(tái)上,如果發(fā)生多設(shè)備登錄要能把老設(shè)備的登錄態(tài)踢掉。

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

用戶認(rèn)證體系的實(shí)現(xiàn)思路和方案

為什么所有商用項(xiàng)目都需要用戶認(rèn)證體系呢?最簡(jiǎn)單的一個(gè)原因是:因?yàn)橛脩舻腎D不能外漏。在產(chǎn)品內(nèi)部與用戶相關(guān)的數(shù)據(jù)資產(chǎn)都是使用用戶ID標(biāo)記用戶歸屬的,一旦外漏造成的風(fēng)險(xiǎn)和損失不可預(yù)估。

在我們?cè)O(shè)計(jì)的認(rèn)證體系中,用戶登錄后返回給前端以下Token信息。

圖片

為什么有兩個(gè)Token

主要考慮下面三個(gè)因素:

  • 一個(gè)Token即負(fù)責(zé)認(rèn)證又負(fù)責(zé)刷新,這種方式前端頁(yè)面會(huì)有并發(fā)請(qǐng)求的情況,Token 的刷新需要加鎖,會(huì)帶來(lái)很大的開(kāi)銷;
  • 無(wú)法保證前端刷新 Token 的互斥時(shí),會(huì)出現(xiàn)Token反復(fù)失效的情況;
  • 還有就是我們?cè)O(shè)計(jì)的refreshToken能幫助我們發(fā)現(xiàn)Token被盜和過(guò)期未更新的問(wèn)題

Token信息的構(gòu)成和存儲(chǔ)

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

用戶登錄授權(quán),在給用戶發(fā)放Token的同時(shí)服務(wù)端會(huì)存儲(chǔ)三份信息,用于會(huì)話管理和認(rèn)證。

圖片圖片

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

圖片圖片

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

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

Token驗(yàn)證和刷新的流程

Token的驗(yàn)證和刷新流程給大家準(zhǔn)備了詳盡的UML活動(dòng)圖和案例進(jìn)行講解

圖片圖片


責(zé)任編輯:武曉燕 來(lái)源: 網(wǎng)管叨bi叨
相關(guān)推薦

2013-03-28 09:35:31

企業(yè)級(jí)系統(tǒng)

2023-03-29 07:49:05

企業(yè)級(jí)項(xiàng)目研發(fā)

2025-01-15 09:21:01

2025-01-02 09:02:09

Go項(xiàng)目Token

2011-04-14 09:49:16

Novell企業(yè)級(jí)LinuxSUSE

2025-02-10 09:03:29

2010-07-08 09:59:51

企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)

2010-05-25 15:05:30

企業(yè)項(xiàng)目組合管理

2025-03-06 01:00:55

架構(gòu)推送服務(wù)編程語(yǔ)言

2018-09-14 16:59:32

2014-09-24 13:32:41

企業(yè)號(hào)

2025-02-26 09:03:24

2015-08-13 22:25:52

OpenStack企業(yè)級(jí)云服務(wù)需求痛點(diǎn)

2010-09-25 17:18:13

企業(yè)級(jí)項(xiàng)目組合管理

2025-05-23 18:28:04

2015-03-09 11:20:25

雙因素認(rèn)證寧盾DKEY

2023-02-15 18:12:43

開(kāi)發(fā)企業(yè)級(jí)CLI

2011-11-04 09:39:48

惠普激光打印機(jī)

2011-11-01 09:40:59

Dropbox企業(yè)級(jí)

2011-11-11 16:41:23

惠普激光打印機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)