| 1234567891011121314151617181920212223242526272829303132 |
- from rest_framework.authentication import BaseAuthentication
- from rest_framework.exceptions import AuthenticationFailed
- import json
- from utils.util_jwt import jwt_decoding
- import jwt
- from jwt import exceptions
- class JwtAutentication(BaseAuthentication):
- def authenticate(self, request):
- # token = request.query_params.get('')
- token = None
- if request.method == 'POST':
- token = json.loads(request.body)["user_token"]
- elif request.method == 'GET':
- token = request.query_params.get('user_token')
- SALT = 'django-insecure-zo64fvv02msf-se7!dek5*w$17#3nh6zta#!i=79bt9d#f88@i'
- try:
- payload = jwt.decode(token, SALT, True)
- except exceptions.ExpiredSignatureError:
- raise AuthenticationFailed({'code': 1003, "error": "token已失效"})
- except jwt.DecodeError:
- raise AuthenticationFailed({'code': 1003, 'error': "token认证失败"})
- except jwt.InvalidTokenError:
- raise AuthenticationFailed({'code': 1003, 'error': "非法token"})
- return payload, token
|