django中token的簽發

2022-09-15 19:57:10 字數 2117 閱讀 1725

pip install djangorestframework-jwt

2.簽發token

#匯入jwt

from 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,肯定涉及到安全驗證問...