1.setting.py配置前端
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', # 配置驗證方式爲Token驗證 ), } JWT_AUTH = { 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7), # Token 過時時間爲一週 'JWT_ALLOW_REFRESH': False, 'JWT_AUTH_HEADER_PREFIX': 'JWT' # Token的頭爲:JWT adfefdfajei342323423 }
@staticmethod def generate_jwt_token(user): """生成Jwt驗證碼""" jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER payload = jwt_payload_handler(user) return jwt_encode_handler(payload) token = self.generate_jwt_token(user) # 獲取Token,並返回給前端 serializer = self.get_serializer(user) return Response({'user': serializer.data, 'token': token})
這樣配置以後,用戶只須要每次登錄以後獲取JWT驗證碼,而後每次前端請求的時候在請求頭帶JWT驗證碼就能夠api
Authorization: JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjobGciOiJIbmFtZSI6InJvb3QiLCJleHAiOjE1Q4OTMsNjc5OTImVtYWlsIjoiIn0.vvOno44OHCJODu1GV_Zq8t7MqRqJneP1Qkp--4Xklgq