用戶身份認證一般有5種方式
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、新建網(wǎng)站維護、網(wǎng)站推廣。HTTP Basic authentication
在發(fā)送請求時在HTTP頭中加入authentication
字段,將用Base64
編碼的用戶名和密碼作為值,每次發(fā)送請求的時候都要發(fā)送用戶名和密碼,實現(xiàn)比較簡單。
Cookies
向后臺發(fā)送用戶名和密碼,在用戶名和密碼通過驗證后,保存返回的Cookie
作為用戶已經(jīng)登錄的憑證,每次請求時附帶這個Cookie
Signatures
用戶拿到服務(wù)器給的私鑰,在發(fā)送請求前,將整個請求使用私鑰來加密,發(fā)送的將是一串加密信息,此方式只適用于API
One-Time Passwords
一次一密,每次登錄時使用不同的密碼,一般由服務(wù)端通過郵件將密碼發(fā)給用戶,這種登錄方式比較繁瑣
JSON Web Token
用戶發(fā)送按照約定,向服務(wù)端發(fā)送Header
、Payload
和Signature
,并包含認證信息(密碼),驗證通過后服務(wù)端返回一個token
,之后用戶使用該token
作為登錄憑證,適合于移動端和api
因為前后端分離的緣故,現(xiàn)在的后臺多數(shù)只提供數(shù)據(jù)部分,一般使用JSON
格式,所以JSON Web Token
是比較流行的認證方式。
JWT
的認證方式相比其他的認證方式有一下優(yōu)點:
信息可用HMAC或RSA加密,信息安全性較高
生成的密文短,密文可以包含所有用戶信息,認證過期時間或用戶權(quán)限等自定義信息
適合用于手機應(yīng)用和單頁面應(yīng)用的身份認證
使用靈活,一旦取得了JWT
,可以通過POST方式或添加入HTTP頭中發(fā)送
JWT
包含3個部分
Header (頭部)
Payload (負載)
Signature (簽名)
負載部分就是具體的認證信息,通過修改這部分的內(nèi)容來控制認證信息如用戶權(quán)限等。除了一些保留字段exp
(過期時間)、aud
、iss
等外,使用方法跟普通Json一樣。
簽名,也就是密鑰,用來保證密文的安全強度
以上3部分都經(jīng)過Base64Url處理后用下載地址 .
分隔再使用HMAC SHA256
或RSA
加密為一段字符串
jwt diagram
客戶端POST用戶名和密碼到服務(wù)端,若對安全要求較高可以是加密后的用戶名或密碼,服務(wù)端把拿到的用戶名和密碼與數(shù)據(jù)庫中的對比,若相同則按照上面的流程生成JWT
,然后返回客戶端。在此之后客戶端的所有請求,可以在Authorization HTTP頭或POST數(shù)據(jù)中附帶得到的JWT
。服務(wù)端驗證JWT
并解析出Payload下載地址 部分,以此來判斷用戶的權(quán)限。
JWT
的使用方法很簡單,就拿node.js的包node-jsonwebtoken
來說加密和驗證就兩個函數(shù)jwt.sign
,jwt.verify
并且jwt.io中提供了很多語言的JWT
包。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。