Django authenticate()用户返回非

2024-09-29 02:20:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚在我的网站上实现了Facebook登录/注册。当用户登录时,我检查(通过AJAX调用)是否已经在我的myModel中拥有她的Facebook用户名电子邮件。如果是,则用户使用内部为他们创建的make\u密码(密码I登录,否则将创建用户。在

我的代码:

#Get Facebook detail, through AJAX
userEmail = request.POST['email']
userID = request.POST['userID']
userName = request.POST['username'].replace(" ", "")

#Check if the user already exist.
try:
   new_user = myModel.objects.get(email = userEmail, fb_id = userID)
except myModel.DoesNotExist:
   new_user = None

if new_user is not None:
    user = authenticate(username = new_user.username, password = "internal")
    if user is not None:
        login(request, user)
        return HttpResponse("User Authenticated Successfully")
    return HttpResponse("User NOT Authenticated!")

#Create and save user here...
pwd = make_password("internal")
new_user = myModel(email=userEmail, fb_id=userID, username=userName, password=pwd)
new_user.save()

#Create and save this user in Django **User** model.
created_user = User.objects.created_user(userName, userEmail, pwd)
created_user.save()
return HttpResponse("User created successfully!")

如果一个用户名(即使是硬编码的用户名)也不例外。在


Tags: 用户newfacebookemailrequestsaveusernamepost
1条回答
网友
1楼 · 发布于 2024-09-29 02:20:33

如果make_password是来自django.contrib.auth公司,则对密码进行两次哈希运算。当您调用该函数时,您将pwd转换为散列,但随后将其传递给create_user,后者将再次对其进行哈希处理。在创建用户时使用普通的User.objects.create(),或者将原始字符串“internal”传递给create_user。在

相关问题 更多 >