【问题标题】:DJango api to send refresh and access tokensDJango api 发送刷新和访问令牌
【发布时间】:2019-04-12 22:32:48
【问题描述】:
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)

嗨,我如何修改此代码以首次发送刷新令牌和访问令牌,并通过接收刷新令牌发送访问令牌。 请帮忙。 提前致谢。

【问题讨论】:

    标签: django frameworks


    【解决方案1】:

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

     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)
    

    【讨论】:

    • 对不起,我不明白刷新和访问令牌之间的区别。刷新令牌是什么意思?
    • 嗨,Shakil,我已经编写了仅用于生成访问令牌的代码。我的问题是我可以发送刷新和访问令牌。在我的 api 响应中,我应该能够根据授权类型生成访问令牌或刷新令牌见下文: ... grant_type=request.data.get('grant_type') if(grant_type == 'password'): 。 .. # 发送刷新令牌和访问令牌的代码 elif(grant_type =='refresh_token'): refresh_token = request.data.get('refresh_token'); ...为给定的刷新令牌发送访问令牌的代码我希望你理解。请帮助获得感谢
    • 它们是一样的吗?刷新和访问令牌?
    • 对不起,我误解了这个问题。
    猜你喜欢
    • 2020-08-09
    • 2017-06-26
    • 1970-01-01
    • 2018-01-05
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2021-08-23
    相关资源
    最近更新 更多