import jwt
import datetime
from django.conf import settings
SALT= settings.SECRET_KEY
def create_token(payload,timeout=5):
headers={
'typ':'jwt',
'alg':'HS256'
}
payload['exp'] = datetime.datetime.utcnow() + datetime.timedelta(minutes=timeout)
token = jwt.encode(payload=payload, key=SALT, algorithm = 'HS256',headers=headers).decode('utf-8')
return token
def verify_token (token):
try:
payload = jwt.decode(token, key=SALT, algorithms = ['HS256'])
#decode成payload,用payload和当前时间戳重新生成一个token并返回
return payload
# token = create_token(payload)
# return token
except:
return False
创建token
接受token 解析数据
view.py
from .token import create_token,verify_token
@api_view(['GET'])
def vinfor(request):
token = request.META.get('HTTP_AUTHORIZATION', '')
print(token)
data=verify_token(token)
if data == False:
return Response({'code':'202','token':'不对' })
print(data)
return Response({"code":'201',"token":data})