Django电商网站--登陆功能

在完成注册功能以后,登陆功能就较为简单了,主要思路逻辑以下:
设置LoginView类负责登陆功能
设置get方法负责响应请求,反馈用户登陆页面
设置post方法 获得用户填写的用户名/手机号以及密码和是否保持登陆状态的选择
校验用户名/手机号以及密码是否填写完整及合规
用Django自带的authenticate函数校验用户名及密码并相应结果
若是用户勾选赞成保持登陆状态,则设置session的过时时间,默认2周,若是用户不一样意,则设置session过时时间为0
最后重定向至响应的页面。后端

须要注意的是,Django中封装的authenticate函数只设置了校验username,若是须要用户经过手机号也能登陆,那就须要将原有的方法进行修改,在使用一个新类(UsernameMobileBackend)继承ModelBackend类,并在authenticate方法中增长mobile,
try:
    if re.match(r'^1[3-9]\d{9}$', account):  #username == 手机号
        user = User.objects.get(mobile=account)
    else:
        user = User.objects.get(username=account)
except User.DoesNotExist:
    return None
else:
    return usersession

以后还要在setting文件中进行关联设置
指定自定义用户认证后端
AUTHENTICATION\_BACKENDS = ['apps.users.utils.UsernameMobileBackend']app

相关文章
相关标签/搜索