DJango API发送刷新和访问令牌

时间:2018-11-09 10:52:30

标签: django frameworks

def login(request):

    username = request.data.get("username")
    password = request.data.get("password")
    if username is None or password is None:
        return Response({'error': 'Please provide both username and password'},
                        status=HTTP_400_BAD_REQUEST)
    user = authenticate(username=username, password=password)
    if not user:
        return Response({'error': 'Invalid Credentials'},
                        status=HTTP_404_NOT_FOUND)
    token, _ = Token.objects.get_or_create(user=user)
    return Response({'token': token.key},
                    status=HTTP_200_OK)

嗨,我如何修改此代码以首次发送刷新令牌和访问令牌,并通过接收刷新令牌来发送访问令牌。 请帮助做到这一点。 预先感谢。

1 个答案:

答案 0 :(得分:0)

我认为不破坏先前生成的令牌是不可能的。如果您希望每次登录都需要新的authtoken,可以先确保销毁较早的令牌并创建一个新的authto。

 from django.core.exceptions import ObjectDoesNotExist
 try:
     token = Token.objects.get(user=user)
     token.delete()
     token = Token.objects.create(user=user)

 except ObjectDoesNotExist:
     token = Token.objects.create(user=user)