接口鑒權


1.1 什么是鑒權?

鑒權是指驗證用戶是否有權利訪問系統的行為

什么是有狀態連接:

http協議是一種無狀態協議,就是說我的本次請求和上一次請求是沒有任何關聯的,無法去共享信息。舉一個場景,我們用什么愛奇藝或者qq視頻追劇的時候,比方說這個劇追到第十集了,那你下次在打開的時候你的愛奇藝肯定會告訴你,你上次看到的歷史記錄問你是不是要繼續從第10集去看。那這種稱之為有狀態,也就是說他會把客戶端上一次做的事情把它記錄下來。那么無狀態是這一次看到第10集了,下次進來了還是從第1集開始,就不會記錄你的任何信息。就是說如果一個視頻網站能夠記錄你觀看到第幾集,你可以理解為這種形式就是有狀態的。那如果不能記住,他就是無狀態。重點是服務器要花時間去幫你處理這個信息,因為記錄的時候服務器會記住你這個用戶的歷史記錄。因為有100個人可能同時追這個劇。那服務器就要記住100份。所以http協議在研發初期,就把它定義成無狀態的。這樣效率會高很多。隨着這個互聯網的發展,對於有狀態的需求就比較大了。所以會引入一些技術去解決。公司里面研發的產品也好,還是我們平常用到的這些應用,大部分都是http協議的。比如說你的淘寶,京東啊,都是http協議。只不過有些會以加密的形式-https,但底層仍是http。京東淘寶要收集你的瀏覽記錄,百度貼吧登錄之后去發貼,里面也會有你瀏覽帖子的記錄。那這些東西,其實都是由這三個技術實現。那么在這里面cookie是最簡單也是最方便的一種技術啊。

1.cookie


Cookie 是在 HTTP 協議下,服務器或腳本可以維護用戶信息的一種方式。Cookie 是由Web 服務器保存在用戶瀏覽器(客戶端)上的小文本文件,它可以包含有關用戶的信息。無論何時用戶訪問到服務器,都會帶上該服務器的cookie信息。

一般 Cookie 都是有效期的, Cookie 只在瀏覽器上保存一段規定的時間,一旦超過規定的時間,該 Cookie 就會被系統清除。

第一步:一般是第一次訪問服務器的時候,服務器返回給客戶端的,儲存在客戶端的一小段文本信息,文本格式為字典,kv鍵值對

第二步。第n+1次去訪問,就要帶上cookie;

它的類型有:會話級cookie:保存在內存,當瀏覽器關閉時會自動消失;

                     持久化cookie:保存在磁盤的當中,當瀏覽器關閉時不會自動消失,它的生命周期取決於失效時間;

缺點:服務器生成保存在客戶端,對於一些重要信息,用戶名和密碼通過cookie保存不安全;

2.Session

第一次,當客戶端登陸服務器時,服務器生成sessionid並且保存到服務器,然后在登錄請求里就會把sessionid通過cookie傳輸給客戶端;

第二步:后面所有的請求都會在請求頭cookie里面使用sessionid,然后和服務器的sessionid進行對比實現鑒權;

sessionid在服務器默認的生命周期是半個小時,半個小時之后每登錄一下seesionid不一樣;

可以在tomcat的conf文件里的web.xml文件里看到;


Session將數據存儲在服務器的內存當中,服務器會為每一個用戶創建一條session,用戶訪問服務器的時候需要拿着sessionid去表明自己的身份。

Session的實現是基於Cookie, Session需要借助於Cookie來存儲sessionID。用戶名和密碼都是保存在服務器上的,只是sessionid不一樣,所以你保存在瀏覽器里,關閉瀏覽器后就沒有了也不影響;
sessionid是每個客戶端都有一個,token是所有的請求都只用一個

3.token

令牌。鑒權碼;

1.如何實現或者鑒權?

第一步。一般是登錄自動生成token或者通過一個單獨的接口來生成token,然后保存在服務器的硬盤里,一般保存在服務器的硬盤里;

第二步。后面的所有請求都必須帶上token(請求頭,參數),然后和服務器的token進行對比實現鑒權。

 

為了防止別人截取token,所以有了加密方式;

4。加密

對稱加密:DES,AES  可以解密

雙鑰加密:AES            可以解密qian'ming

MD5,SHA1                    不可以解密

 金融項目,銀行項目,第三方支付:自定義加密規則,Sign簽名;無法破解的

5.應用:

測試登錄失效之后的反應,session的功能測試;

postman:自動管理;

接口自動化:token鑒權,接口關聯;

接口自動化:request.get(cookie)

                        request.session()

web自動化:通過cookie實現萬能驗證碼

6.相同點和不同點:

相同點:都是用於鑒權,通過服務器產生

不同點:

1.cookie儲存在客戶端,session儲存在服務器內存,token儲存在服務器硬盤,session和token的安全性比cookie高。

2.token的優勢是比session更省資源,不需要管理sessionid.

接口鑒權之cookie,session和token - 知乎 (zhihu.com)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM