pip install djangorestframework-jwt
2.簽發token
#匯入jwtfrom rest_framework_jwt.serializers import
jwt_payload_handler
from rest_framework_jwt.serializers import
jwt_encode_handler
#匯入jwt預設的登入模組
from django.contrib import
auth
class
loginapiview(apiview):
def post(self, request, *args, **kwargs):
username = request.data.get('
username')
password = request.data.get('
password')
ifnot (username and
password):
return
response()
user_obj = auth.authenticate(username=username, is_active=true, password=password)
ifuser_obj:
#簽發token
payload =jwt_payload_handler(user_obj)
token =jwt_encode_handler(payload)
return
response()
else
:
return
response()
3.全域性配置jwt和區域性配置
#全域性認證元件
rest_framework=
#設定token過期時間
import datetime
jwt_auth =
#區域性使用jwt
authentication_classes =[jwttoken]
#區域性禁用jwt
authentication_classes =
4.jwt的驗證
欄位是必須的')
try:
payload =jwt_decode_handler(jwt_value)
except
jwt.expiredsignature:
raise exceptions.authenticationfailed('
token已過期')
except
jwt.invalidtokenerror:
raise exceptions.authenticationfailed('
token非法')
user =self.authenticate_credentials(payload)
return (user, jwt_value)
注釋:嚴格的token驗證是要在簽發的時候存進資料庫或者快取中,然後在前端向後端傳送資料的時候從資料庫中或者快取中取出來進行校驗
JJWT簽發與認證token
pom檔案 io.jsonwebtokengroupid jjwtartifactid 0.9.0version dependency 2.建立jwt 當前時間 long currenttimemillis system.currenttimemillis currenttimemillis 100...
Token在android中的使用
首先token是乙個怎麼樣的東西,token存在的意義又在 學過php或是其他web開發的人都知道乙個東西叫session和cookie,這些東西可以在伺服器或是本地儲存一些東西,比如說登入狀態,當使用者登入後可以通過session或是cookie在本地儲存一段時間的登入狀態,在這段時間內,使用者再...
Swagger中新增Token驗證
平常做專案使用mvc webapi,採取前後端分離的方式,後台提供api介面給前端開發人員。這個過程中遇到乙個問題後台開發人員怎麼提供介面說明文件給前端開發人員。為了解決這個問題,專案中引用swagger 我比較喜歡戲稱為 哥 列出所有api控制器和控制器描述 那麼既然是api,肯定涉及到安全驗證問...