99久久精品国产自在首页,亚洲最大av网站在线观看,一区二区,久久国产,亚洲综合色区另类av,永久黄网站色视频免费下载

藍(lán)風(fēng)游戲賬號(hào)交易系統(tǒng)源碼 - 專業(yè)的游戲賬號(hào)交易系統(tǒng)源碼

資訊熱點(diǎn)
對(duì)令牌機(jī)制的簡(jiǎn)單理解

發(fā)布時(shí)間:2022-6-9 分類: 行業(yè)資訊

在簡(jiǎn)要理解cookie /會(huì)話機(jī)制的文章中,簡(jiǎn)要介紹了cookie和會(huì)話的原理。本文將簡(jiǎn)要介紹另一個(gè)與cookie/session一樣重要的技術(shù)術(shù)語(yǔ):token。

什么是令牌

令牌意味著“令牌”是由服務(wù)器生成的字符串,作為客戶端發(fā)出請(qǐng)求的標(biāo)識(shí)符。

用戶首次登錄后,服務(wù)器會(huì)生成令牌并將令牌返回給客戶端。之后,客戶端只需要將令牌帶到請(qǐng)求數(shù)據(jù),而無(wú)需再次攜帶用戶名和密碼。

簡(jiǎn)單令牌的組成; uid(用戶的唯一標(biāo)識(shí)),時(shí)間(當(dāng)前時(shí)間的時(shí)間戳),符號(hào)(簽名,令牌的前幾個(gè)數(shù)字通過(guò)哈希算法壓縮成一定長(zhǎng)度的十六進(jìn)制字符串。防止令牌泄漏)。

身份認(rèn)證概述

由于HTTP是無(wú)狀態(tài)協(xié)議,因此它不知道誰(shuí)正在訪問(wèn)我們的應(yīng)用程序。在這里,用戶被視為客戶??蛻舳耸褂糜脩裘兔艽a來(lái)傳遞身份驗(yàn)證,但是下次客戶端發(fā)送請(qǐng)求時(shí),必須對(duì)其進(jìn)行驗(yàn)證。

一般的解決方案是,當(dāng)用戶請(qǐng)求登錄時(shí),如果沒(méi)有問(wèn)題,則在服務(wù)器上生成記錄,其中指定了登錄的用戶,然后將記錄的id發(fā)送給客戶端, 客戶端。收到此ID后存儲(chǔ)在cookie中,下次用戶再次向服務(wù)器發(fā)送請(qǐng)求時(shí),您可以帶上此cookie,以便服務(wù)器驗(yàn)證cookie中的信息,看看您是否可以在此處找到相應(yīng)的信息。服務(wù)器該記錄(如果可用)表示用戶已通過(guò)身份驗(yàn)證并將用戶請(qǐng)求的數(shù)據(jù)返回給客戶端。

上述過(guò)程是使用會(huì)話,id值是sessionid。我們需要在服務(wù)器端存儲(chǔ)用戶生成的會(huì)話,這些會(huì)話存儲(chǔ)在內(nèi)存,磁盤或數(shù)據(jù)庫(kù)中。

基于令牌機(jī)制的身份認(rèn)證

使用令牌機(jī)制的身份驗(yàn)證方法不需要在服務(wù)器端存儲(chǔ)用戶的登錄記錄??赡艿倪^(guò)程:

客戶端使用用戶名和密碼請(qǐng)求登錄。

服務(wù)器接收請(qǐng)求并驗(yàn)證用戶名和密碼。

驗(yàn)證成功后,服務(wù)器將生成令牌,然后將令牌發(fā)送到客戶端。

客戶端存儲(chǔ)令牌并將其存儲(chǔ)在cookie或本地存儲(chǔ)中。

每次客戶端向服務(wù)器發(fā)送請(qǐng)求時(shí),都需要攜帶服務(wù)器發(fā)送的令牌。

服務(wù)器接收請(qǐng)求,然后驗(yàn)證客戶端請(qǐng)求是否攜帶令牌。如果驗(yàn)證成功,則將請(qǐng)求的數(shù)據(jù)返回給客戶端。

要使用令牌機(jī)制進(jìn)行登錄身份驗(yàn)證,您可以執(zhí)行以下操作:

一個(gè)。使用設(shè)備mac地址作為令牌

客戶端:客戶端在登錄時(shí)獲取設(shè)備的mac地址,并將其作為參數(shù)傳遞給服務(wù)器

服務(wù)器:服務(wù)器收到參數(shù)后,會(huì)使用變量接收該參數(shù),將其作為令牌保存在數(shù)據(jù)庫(kù)中,并將令牌設(shè)置為會(huì)話。每次客戶端請(qǐng)求時(shí),它必須統(tǒng)一攔截它,并將客戶端傳遞的令牌與服務(wù)器會(huì)話中的令牌進(jìn)行比較。如果登錄成功,則登錄成功。

通過(guò)這種方式,客戶端和服務(wù)器統(tǒng)一唯一標(biāo)識(shí)并確保每個(gè)設(shè)備具有唯一標(biāo)識(shí)。缺點(diǎn)是服務(wù)器需要保存mac地址。優(yōu)點(diǎn)是客戶端不需要再次登錄。登錄一次后即可使用。超時(shí)問(wèn)題由服務(wù)器處理。

灣使用sessionid作為令牌

客戶端:客戶端使用用戶名和密碼登錄

服務(wù)器:收到用戶名和密碼后,執(zhí)行驗(yàn)證。如果本地獲取的sessionid作為令牌返回給客戶端,則客戶端只需要稍后提供請(qǐng)求的數(shù)據(jù)。

這種方法的優(yōu)點(diǎn)是方便,不需要存儲(chǔ)數(shù)據(jù)。缺點(diǎn)是當(dāng)會(huì)話到期時(shí),客戶端必須再次登錄才能請(qǐng)求數(shù)據(jù)。

當(dāng)然,對(duì)于一些具有高機(jī)密性的應(yīng)用程序,可以使用這兩種方法的組合來(lái)驗(yàn)證設(shè)備mac地址以及用戶名和密碼作為令牌。

APP使用令牌機(jī)制進(jìn)行身份驗(yàn)證

當(dāng)用戶登錄APP時(shí),APP會(huì)向服務(wù)器發(fā)送加密的用戶名和密碼。服務(wù)器驗(yàn)證用戶名和密碼。如果驗(yàn)證成功,則生成相應(yīng)數(shù)量的字符作為令牌并存儲(chǔ)在服務(wù)器中,并將令牌返回給服務(wù)器。 APP方面。

將來(lái),當(dāng)APP再次請(qǐng)求時(shí),所有需要驗(yàn)證的地方必須附有令牌,然后服務(wù)器驗(yàn)證令牌,并成功返回返回的結(jié)果。失敗返回錯(cuò)誤消息,用戶再次登錄。其中,服務(wù)器將設(shè)置令牌的有效期,每次APP請(qǐng)求時(shí)都將驗(yàn)證令牌和有效期。

令牌存儲(chǔ)

令牌可以存儲(chǔ)在數(shù)據(jù)庫(kù)中,但令牌可能太長(zhǎng)而導(dǎo)致令牌丟失(事實(shí)上,令牌丟失并重新驗(yàn)證,但不要經(jīng)常丟失,不要t讓用戶進(jìn)行身份驗(yàn)證)。

為了避免查詢時(shí)間過(guò)長(zhǎng),可以將令牌放入內(nèi)存中。這種查詢速度絕對(duì)不是問(wèn)題,您不必過(guò)于擔(dān)心占用內(nèi)存。即使令牌是32位字符串,該應(yīng)用程序的用戶數(shù)量也只有一百萬(wàn)或一千萬(wàn),而內(nèi)存不多。

令牌加密

令牌很容易泄露,如果它沒(méi)有加密,可以很容易地復(fù)制并用于登錄。加密方法通常是:

令牌是對(duì)稱加密的,在存儲(chǔ)時(shí)存儲(chǔ),并在使用時(shí)解密。

本文開頭提到的簽名符號(hào):請(qǐng)求URL,時(shí)間戳和令牌由算法組合和加密。

最好使用兩者的組合。

另一點(diǎn)是在網(wǎng)絡(luò)級(jí)使用明文傳輸非常危險(xiǎn),因此請(qǐng)務(wù)必使用HTTPS協(xié)議。

總結(jié)

以上是用戶身份驗(yàn)證過(guò)程中令牌的簡(jiǎn)要概述。我希望沒(méi)有技術(shù)背景的產(chǎn)品經(jīng)理在與兄弟溝通時(shí)不應(yīng)被這些技術(shù)術(shù)語(yǔ)問(wèn)到。

作者:轉(zhuǎn)瞬即逝,互聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)師,4年互聯(lián)網(wǎng)產(chǎn)品經(jīng)驗(yàn)。

本文最初由@流年發(fā)表。未經(jīng)許可,禁止復(fù)制。

該地圖由作者提供

« 自學(xué)SEO和收費(fèi)SEO的區(qū)別 | 迪迪同意捐贈(zèng)100萬(wàn)救援設(shè)備。打撈隊(duì)不再起訴滴水 »