微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

你如何正确使用Django登录功能

如何解决你如何正确使用Django登录功能

目前我所了解的是,当您使用常规 Django 时,您导入并使用 AuthenticationForm 并将 request.POST 放在那里,它会检索您正在寻找的用户。但在这种情况下,我使用 DRF 和一些第三方身份验证系统来为我检索用户。所以为了测试登录功能,我制作了这个虚拟代码来测试它:

@api_view(["GET"])
def login_view(request):

    if request.method == "GET":

        #actuall users that exist
        user =     {  
        "id": 1,"email": "test@gmail.com","name": "melly","date_joined": "2021-07-09T11:33:44.440889Z"
        }

        login(request,user)


    return Response('test')

它给了我这个错误

enter image description here

谁能向我解释一下这个错误以及为什么会发生这种情况,谢谢!

解决方法

根据 docslogin 函数需要一个 HttpRequest 对象和一个 User 对象(不是 dict),所以你的虚拟代码应该是这样的:

user,has_been_created = User.objects.get_or_create(email=test@gmail.com,...)

但请注意,REST API 应该是无状态的,因此您可能应该避免使用 login(基于 Django 的会话),而是将令牌返回给您的用户。

这称为令牌身份验证,您可以找到 DRF here 的文档。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。