django 的用户验证及登录状态保持
一、用户验证功能
Django自带用户验证及登录功能,引入模块为:
from django.contrib.auth import authenticate
其中方法authenticate()的接收参数为:
def authenticate(request=None, **credentials):
传入参数:
user = authenticate(username=login_user, password=login_password)
authenticate方法自动在数据库中匹配、验证,但是不能实现邮箱登录的验证,需要对该方法重写,导入模块:
from django.contrib.auth.backends import ModelBackend
创建重写类:
class ChongxieAuthenticate(ModelBackend): def authenticate(self, username=None, password=None, **kwargs): try: user = UserProfile.objects.get(Q(username=username) | Q(email=username)) if user.check_password(password): return user else: return None except Exception as e: return None
如果用户名或邮箱、密码验证通过,则会将该对象传递给user,如果为通过,传回None
二、登录状态保持
Django自带的login()方法可实现用户登录状态的保持,引入模块:
from django.contrib.auth import login
如果登录验证通过,使用:
login(request, user)
使用该方法后,会在服务器端的session中生成_auth_user_id和_auth_user_backend两个键值,并发到客户端作为cookie,前端页面可通过{% if request.user.is_authenticated %}判断是否登录,来实现登录状态的保持功能。
转载于:https://www.cnblogs.com/wendaobiancheng/p/9123382.html
django 的用户验证及登录状态保持相关推荐
- python3 django2开发个人商城网站(自定义用户表保持登录状态功能)
最近想学爬虫,但是呢,我想搭建一个网站来熟悉一下网页中的东西,我起初的想法是做一个个人博客网站,我django项目都创建了,我用了几天的时间来构思这个网站应该怎么做,正当我在构思的时候,我突然有了一个 ...
- 使用django的用户帐号登录openfire
openfire是一个基于XMPP协议开源的及时通信服务器系统.利用它再加上同样开源的spark,可以轻松的为你的网站用户提供一个类似QQ这样的及时通讯软件,来扩展网站服务,增加用户黏度.openfi ...
- 装饰器实现用户验证登录
在实现用户验证的登录的时候可以使用装饰器工厂产生装饰器,让装饰器得到参数,从而判断登录类型,并验证用户登录条件,代码实现如下: def login_type(type):def Outer(F):de ...
- shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...
看了一下官网,没有找到关于如何控制同一用户只能一处登录的介绍,网上也没有找到相关的文章.可能有些人会记录用户的登录信息,然后达到踢出用户的效果.这里介绍一个更简单的方法. 如果我们跟shiro的源码, ...
- python 状态模式_使用状态模式自由切换登录状态
日常开发中,登录和未登录两种状态分别有不同的操作,比如登录后才能评论.收藏.支付购买和编辑资料等操作.我们网购时看到心仪的商品,如果处于登录状态,可以加购物车或直接购买,否则会跳转到登录页面,登录后再 ...
- 用vue实现注册页面、登录页面、主页之间跳转并保持登录状态【完整代码】
文章目录 前言 一.页面的简单实现 1.登录页面 2.注册页面 3.主页(显示个人信息) 二.逻辑实现 1.localStorage的使用 2.功能实现 登录 注册 主页 路由配置文件 总结 前言 本 ...
- 在Forms验证模式下,实现多个站点(SubDomain相同)共享同一用户登录状态
原文:http://caomao.cnblogs.com/archive/2005/07/05/186606.html 今天一早看了dudu关于二级域名Cookie的问题及解决方法,认为dudu的原理 ...
- vue router.beforeEach跳转路由验证用户登录状态
使用vue判断验证用户登录状态 导航钩子类似于生命周期钩子,包含路由进入前,进入后,更新时,退出前等几个周期,主要用于控制导航的前进后退或跳转等. 其中router.beforeEach就是路由进入前 ...
- Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖
小论坛地址: http://rayyu.5d6d.com/thread-9444-1-1.html 正文: 首先 session 和 cache 拥有各自的优势而存在. 他们的优劣就不在这里讨论了. ...
最新文章
- SharePoint 2013 图文开发系列之代码定义列表
- About Firefox
- 详解蚂蚁金服 SOFAJRaft:生产级高性能 Java 实现
- linux查看占用内存最多的程序
- sign check fail: check Sign and Data Fail
- 大道至简:算法工程师须知的十个炼丹trick
- 【kafka】Kafka Consumer 中的心跳线程有什么作用?
- C/C++结构体语法总结
- discuz二开的9月最新版本Miko二次元动漫视频网站源码完美搭建视频php源码
- 手机软件测试linux,手机终端软件测试浅析
- Anaconda Clean命令
- 谢孟媛老师 初级文法学习笔记
- 在docker中挂载硬盘
- 【shiro基础】springboot + shiro整合thymeleaf
- Debug的心路历程
- 动手深度学习笔记(四十)7.4. 含并行连结的网络(GoogLeNet)
- DOTA2攻速计算公式研究
- 微信退款No appropriate protocol (protocol is disabled or cipher suites are inappropriate)问题解决
- 机器人 抓取 Grasp Pose Detection (GPD) grasp类型转ROS的标准pose
- 互联网黄金十年已过 白银时代到来
热门文章
- boot项目中pom依赖已经删除了但是maven上还是报红线_Java Web项目是怎么跑起来的?...
- 手机号验证_国际手机号收不到微博验证短信,微博验证短信一直提示超过上限怎么办?...
- 基于颜色特征的图像匹配MATLAB,基于颜色特征的图像检索系统 这是个MATLAB程序 - 下载 - 搜珍网...
- layui table 弹出层刷新_layui 关闭open弹出框 刷新table表格页面的方法
- 【深度学习】面向医学图像的病灶分割调研(三)
- 【深度学习入门到精通系列】什么是消融实验(Ablation experiment)
- TensorFlow框架--Keras
- cms php vue 开源_骑士CMS文件包含+getshell
- linux软中断优先级,Linux中软中断机制分析
- php 分页参数丢失,THINKPHP3.2搜索分页丢失参数,实现保留搜索条件解决办法