cookie、session、token區別
關于token,session,cookie的概念和區別
1.token是 服務經過計算發給客戶端的,服務不保存,每次客戶端來請求,經過解密等計算來驗證是否是自己下發的
2.session是服務本地保存,發給客戶端,客戶端每次訪問都帶著,直接和服務的session比對
3.cookie是保存在客戶端上的一些基本信息,服務不保存,每次請求時客戶端帶上cookie,里面有一些賬戶密碼,瀏覽記錄什么的
1.token
普通定義:令牌,跨平臺,身份,通過這個令牌可以獲取到值
貼切點的說法,應該是代表權限,有了權限可以獲取某些東西
接口化測試定義:當你持有token以后,就可以得到接口返回過來的值和數據
沒有令牌(token),接口就不會返回數據
token接口練習:
打開http://www.keyou.site:8000/docs/

接口測試文檔
輸入數據,返回值

get請求
出現上面結果,原因是提供了用戶信息(認證信息)不對
那么我們的用戶信息,認證信息用哪里來取。
通過接口去拿認證信息,訪問登錄接口
接口測試流程:
訪問開發提供接口,獲取token信息,稱為“登錄”
1. 先訪問登錄接口
2. 先得到用戶信息(證明身份)獲取token或者session 只要有token就可以返回數據,沒有token就不返回信息
3. 拿著表明自己身份信息,再去訪問其他接口
token流程
1.下面獲取了用戶信息,訪問登錄接口,右邊token值名稱不一定是token
根據開發提供的接口文檔查看哪個是token

獲取token
用戶名密碼不對,無法獲取token值,說明不是我們的客戶

2.有了令牌token,如果想去登錄,加上token值
3.打開postman
輸入地址:http://www.keyou.site:8000/projects
在heards(信息頭中)在授權書(Authorization)填入剛剛獲取token,在token前加入JWT (token)
headers:信息頭部信息
4.token,放在那里獲取信息:查看開發的接口文檔,開發讓你放在那里就那里 如果沒有就需要詢問開發
JWT:是個前綴,也是開發規定的
token值:是訪問登錄的時候,由服務器反饋的(開發的算法生成)
下面我們以Python代碼為例生成token值
開發寫的后端接口
"""
from flask import Flask,request # 導入框架flask
server = Flask(__name__)
@server.route('/') # 接口1
def index(): # 主頁
return {'msg':'success','data':'100wan'}
@server.route('/login') #接口2
def login(): # 登錄接口
"""返回值token給前端"""
# 獲取query string:url (網址)當中的參數
username = request.args.get('username') # 獲取網頁username 和password
password = request.args.get('password')
if username =='yw'and password =='123456': # 判斷 username password == 什么時
return { # 返回 token 值(值自己定義),id, userbane
'token': username,
'id': 1,
'username': 'yuz'}
return {'msg':'username and password is error',}
輸出:生成了接口服務器


而正常token都會添加上時間戳

代碼

優化后的token
token和session 區別
可以不通過token令牌獲取用戶數據
在登錄端 將用戶信息存在session,在首頁校驗用戶名是否存在,否則返回先登錄
session的定義
和token一樣,也是有效期
用一個session的變量,把用戶數據存放在服務器端,保存到服務端的用戶數據,就稱為session
用戶數據會進行加密,加密的過程session框架會進行完成,加密后的數據會自動放在響應頭里cookie
cookie定義
cookie存放在瀏覽器端
cookie是和域名,ip綁定在一起,首次登陸后瀏覽器存放cookie,下次登陸會帶上cookie值而不需要重新登陸
session 和 token區別
1. token是開發定義的格式,session是基于框架內的格式
2. token值不需要占用內存,session值是需要存在服務端(不進行存儲無法校驗)
3. token是可以跨平臺(比如在電腦端取到token值拿到手機登陸是可以使用)
session不可以跨平臺,因為session生成的cookie是和域名 ip綁定在一起,換個平臺就失效了
session和cookie區別
同一個用戶的信息存在服務端的稱為:session
存儲在客戶端的稱為:cookie
session和cookie也是同時搭配使用的
