***
维尤斯。PY 这是 views.py 我可以登录但无法登录,它显示无效凭据
'def login_user(request): if request.method=='POST':
if request.POST.get('submit')=='sign_up':
username=request.POST.get('name')
email=request.POST.get('email')
password=request.POST.get('password')
if User.objects.filter(email=email).exists(): # Condition for same email id if already exists
messages.warning(request,'Email already exists')
else:
user =User(email=email,password=password,username=username)
user.set_password(password) #since raw passwords are not saved therefore needs to set in this method
user.save()
messages.success(request,'User has been registered successfully') #Dispalys message that user has been registerd
return redirect('login')
elif request.POST.get('loginsubmit')=='sign_in':
email = request.POST['email']
password = request.POST['password']
user = authenticate(request, email=email, password=password)
if user is not None:
login(request, user)
return redirect ('/')
else:
messages.warning(request,'Invalid credentials')
# print(email,password,username)
return render (request,'login.html')`
LOGIN.html
=======
`//<section id="form"><!--form-->
<div class="container">
<div class="row">
<div class="col-sm-4 col-sm-offset-1">
<div class="login-form"><!--login form-->
<h2>Login to your account</h2>
<form method="POST" action="login">
{% csrf_token %}
<input type="email" placeholder="Email Address" id="validationDefault01" name="email" required>
<input type="password" placeholder="Password" id="validationDefault02" name="password" required>
<span>
<input type="checkbox" class="checkbox">
Keep me signed in
</span>
<button type="submit" name='loginsubmit' value='sign_in' class="btn btn-default">Login</button>
</form>
</div><!--/login form-->
</div>
<div class="col-sm-1">
<h2 class="or">OR</h2>
</div>
<div class="col-sm-4">
{% block body %}
<body>
{% for message in messages %}
<section>
<div class=" container alert alert-{{message.tags}} alert-dismissible" role="alert">
<strong>Message!</strong> {{message}}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</div>
</section>
{% endfor %}
<section id="form"><!--form-->
<div class="container">
<div class="row">
<div class="col-sm-4 col-sm-offset-1">
<div class="login-form"><!--login form-->
<h2>Login to your account</h2>
<form method="POST" action="login">
{% csrf_token %}
<input type="email" placeholder="Email Address" id="validationDefault01" name="email" required>
<input type="password" placeholder="Password" id="validationDefault02" name="password" required>
<span>
<input type="checkbox" class="checkbox">
Keep me signed in
</span>
<button type="submit" name='loginsubmit' value='sign_in' class="btn btn-default">Login</button>
</form>
</div><!--/login form-->
</div>
<div class="col-sm-1">
<h2 class="or">OR</h2>
</div>
<div class="col-sm-4">
<div class="signup-form"><!--sign up form-->
<h2>New User Signup!</h2>
<form method="POST" action="login">
{% csrf_token %}
<input type="text" placeholder="Name" id="validationDefault05" name="name" required>
<input type="email" placeholder="Email Address" id="validationDefault03" name="email" required>
<input type="password" placeholder="Password" id="validationDefault04" name="password" required>
<button type="submit" class="btn btn-default" name='submit' value='sign_up'>Signup</button>
</form>
</div><!--/sign up form-->
</div>
</div>
</div>
</section><!--/form-->
</body>
{% endblock %}
`
共2个答案
匿名用户
它显示无效凭据
因为您的authenticate()
返回None
authenticate()
默认使用用户名和密码进行身份验证,并且您提供电子邮件和密码进行身份验证。如果要通过电子邮件和密码进行身份验证,请编写自己的自定义身份验证后端。
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
class CustomEmailBackend(ModelBackend):
def authenticate(self, request, email=None, password=None, **kwargs):
UserModel = get_user_model()
try:
user = UserModel.objects.get(email=email)
except UserModel.DoesNotExist:
return None
else:
if user.check_password(password):
return user
return None
之后,您可以在settings.py
中自定义身份验证
AUTHENTICATION_BACKENDS = ['path.to.CustomEmailBackend']
还将您的电子邮件存档unique=True
匿名用户
默认情况下,身份验证是通过身份验证用户模型的用户名字段完成的,您需要在身份验证用户模型中将username_field设置为电子邮件字段。您的身份验证用户模型应如下所示
class User(AbstractBaseUser,PermissionsMixin):
**fields**
USERNAME_FIELD = 'email'
相关问题
- 使用--proxy-user、--keytab和--主体参数在hadoop kerberos中提交火花
- Kerberos身份验证。钥匙扣和车票
- 对于基于 kerberos 的身份验证,我们是否需要所有 AD 用户的密钥表条目?
- 在Windows上为Linux上的Kerberos身份验证创建密钥选项卡
- kerberos Keytab用于在linux环境中自动化脚本作业
- Hadoop Oozie shell操作中的kerberos票证和委托令牌使用
- 如何让 Hadoop 客户端在安全 (Kerberos) 集群中为用户提供正确的凭据
- 设置ADuser和“用户下次登录时必须更改密码”的问题
- Active Directory如何模拟用户登录和更改密码
- 电源外壳服务帐户密码更改登录失败
- Proguard不处理FXML中的onAction调用
- Visual Studio Code 中的 JUnit
- 如何从命令行排除mvn构建路径中的特定苍蝇?
- 如何从源代码中正确构建keycloak
- 如何解决“HttpAuthenticationFactory的机制[KEYCLOAK]中没有所需的机制'BASIC'”
- 如何从 Git 克隆存储库并在 Java 中自动运行 Maven 构建
- 在服务器上设置SSH身份验证时,Kerberos keytab文件的原因是什么?
- 当密码包含特殊符号时,使用powershell更改服务的登录帐户
- java 13 jar文件在java 17中不起作用,收到错误UnafftedClassVersionError
- 如何让证书链显示在谷歌浏览器上
默认情况下,身份验证是通过身份验证用户模型的用户名字段完成的,您需要在身份验证用户模型中将username_field设置为电子邮件字段。您的身份验证用户模型应如下所示
class User(AbstractBaseUser,PermissionsMixin):
**fields**
USERNAME_FIELD = 'email'
它显示无效凭据
因为您的authenticate()
返回None
authenticate()
默认使用用户名和密码进行身份验证,并且您提供电子邮件和密码进行身份验证。如果要通过电子邮件和密码进行身份验证,请编写自己的自定义身份验证后端。
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
class CustomEmailBackend(ModelBackend):
def authenticate(self, request, email=None, password=None, **kwargs):
UserModel = get_user_model()
try:
user = UserModel.objects.get(email=email)
except UserModel.DoesNotExist:
return None
else:
if user.check_password(password):
return user
return None
之后,您可以在settings.py
中自定义身份验证
AUTHENTICATION_BACKENDS = ['path.to.CustomEmailBackend']
还将您的电子邮件存档unique=True
大家好,我对FireBase创建用户和注册用户有问题。下面是注册和登录的代码。我得到空指针异常,无法理解原因。。初始化完成了,但经过了这么多天的努力,还是弄不明白。 注册: 正在发布注册活动的日志错误: java.lang.com.google.android.gms.internal.zzdvv.zzb(未知来源)在com.google.android.gms.internal.zzdwc.zz
我试着用laravel做一个登录/注册的简单应用。。。我目前使用的是5.2版本的laravel。 在路线上,我写道: 所以现在当我尝试注册用户在localhost:8888/auth/register-我填写字段,但当我点击注册然后我得到错误消息: 用户中的FatalErrorException。php第8行:找不到类“lightlight\Foundation\Auth\User” 那么我如何在
本文向大家介绍Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册,包括了Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册的使用技巧和注意事项,需要的朋友参考一下 动态验证:(不需要建Model模型) 1.建一个控制器,做表单操作(包含验证) 2.对应控制器方法的html页面: ajax:(不需要建Model模型) 1.建一个控制器,做表单操作(包含验证) 2.
如果你已有幕布,直接登录即可。如果还没有账号,可以使用手机号码注册幕布账号,也可以通过QQ、微信直接注册并登录。 注:微信登录方式需要手机上安装有微信。 账号设置与绑定 登录幕布后,点左上角的头像或者轻按屏幕从左往右滑动,选择「应用设置 - 账号设置」。在这里可以修改头像和昵称,设置密码,绑定手机号码、微信、QQ账号。 注: 绑定手机后才可以设置账号密码,手机号即为账号。 解除绑定需要在电脑上登录
在首页点击注册进入注册页面,你可以使用手机号码注册幕布账号,也可以通过QQ、微信账户直接创建账号并登录。 账号设置与绑定 登录幕布后,点击右上角处用户头像,在下拉菜单中选择「账号设置」。在这里可以修改头像和昵称,设置密码,绑定手机号码、微信、QQ账号,查看账号是否为高级版以及高级版到期时间。 注: 绑定手机后才可以设置账号密码,手机号即为账号。 解绑最后一个登录方式后,账号将无法登录,请注意将文档
注册 / 登录 1.注册 注册入口: 访问 http://www.aikf.com/ 点击右上角注册按钮 输入注册手机号、图形验证码、手机验证码等进行注册 其他注册入口:手机登录http:/www.aikf.com/ 爱客服官方微信公众号注册:点击立即注册 2.登录 登录入口: 访问http://www.aikf.com/ 点击登录 输入用户名及登录密码,点击登录(见下图) 2.修改密码 在登录入