PyJWT第三方庫:`pip install pyjwt`
2. 編寫生成和驗證Token的代碼:
“`python
import jwt
import datetime
SECRET_KEY = ‘your-secret-key’
# 生成Token
def create_token(user_data):
payload = {
‘user_id’: user_data[‘user_id’],
‘username’: user_data[‘username’],
‘exp’: datetime.datetime.utcnow() + datetime.timedelta(hours=24)
}
token = jwt.encode(payload, SECRET_KEY, algorithm=’HS256′)
return token
# 驗證Token
def verify_token(token):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=[‘HS256’])
return payload
except jwt.ExpiredSignatureError:
raise Exception(‘Token已過期’)
except jwt.InvalidTokenError:
raise Exception(‘無效Token’)
“`
#### 四、Token的使用與安全性
1. 使用Token時,需要考慮Token的有效期(過期時間)。過期時間越短,安全性越高,但用戶體驗可能較差;過期時間越長,用戶體驗較好,但安全性可能相對較低。
2. 將Token發(fā)送到客戶端時,可以將其存儲在Cookie、Header、LocalStorage等地方。為了防止跨站攻擊,推薦使用HttpOnly Cookie和Secure Cookie。
3. 使用HTTPS協(xié)議傳輸數(shù)據(jù),以防止中間人攻擊。
4. 定期刷新Token(如使用Refresh Token)以保證安全性。
總之,Token在移動應(yīng)用開發(fā)中具有重要的安全作用。了解Token的生成原理和實現(xiàn)方法,并正確使用Token,對于保障用戶數(shù)據(jù)安全具有重要意義。