一、用户验证功能

  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 的用户验证及登录状态保持相关推荐

  1. python3 django2开发个人商城网站(自定义用户表保持登录状态功能)

    最近想学爬虫,但是呢,我想搭建一个网站来熟悉一下网页中的东西,我起初的想法是做一个个人博客网站,我django项目都创建了,我用了几天的时间来构思这个网站应该怎么做,正当我在构思的时候,我突然有了一个 ...

  2. 使用django的用户帐号登录openfire

    openfire是一个基于XMPP协议开源的及时通信服务器系统.利用它再加上同样开源的spark,可以轻松的为你的网站用户提供一个类似QQ这样的及时通讯软件,来扩展网站服务,增加用户黏度.openfi ...

  3. 装饰器实现用户验证登录

    在实现用户验证的登录的时候可以使用装饰器工厂产生装饰器,让装饰器得到参数,从而判断登录类型,并验证用户登录条件,代码实现如下: def login_type(type):def Outer(F):de ...

  4. shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...

    看了一下官网,没有找到关于如何控制同一用户只能一处登录的介绍,网上也没有找到相关的文章.可能有些人会记录用户的登录信息,然后达到踢出用户的效果.这里介绍一个更简单的方法. 如果我们跟shiro的源码, ...

  5. python 状态模式_使用状态模式自由切换登录状态

    日常开发中,登录和未登录两种状态分别有不同的操作,比如登录后才能评论.收藏.支付购买和编辑资料等操作.我们网购时看到心仪的商品,如果处于登录状态,可以加购物车或直接购买,否则会跳转到登录页面,登录后再 ...

  6. 用vue实现注册页面、登录页面、主页之间跳转并保持登录状态【完整代码】

    文章目录 前言 一.页面的简单实现 1.登录页面 2.注册页面 3.主页(显示个人信息) 二.逻辑实现 1.localStorage的使用 2.功能实现 登录 注册 主页 路由配置文件 总结 前言 本 ...

  7. 在Forms验证模式下,实现多个站点(SubDomain相同)共享同一用户登录状态

    原文:http://caomao.cnblogs.com/archive/2005/07/05/186606.html 今天一早看了dudu关于二级域名Cookie的问题及解决方法,认为dudu的原理 ...

  8. vue router.beforeEach跳转路由验证用户登录状态

    使用vue判断验证用户登录状态 导航钩子类似于生命周期钩子,包含路由进入前,进入后,更新时,退出前等几个周期,主要用于控制导航的前进后退或跳转等. 其中router.beforeEach就是路由进入前 ...

  9. Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖

    小论坛地址: http://rayyu.5d6d.com/thread-9444-1-1.html 正文: 首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. ...

最新文章

  1. SharePoint 2013 图文开发系列之代码定义列表
  2. About Firefox
  3. 详解蚂蚁金服 SOFAJRaft:生产级高性能 Java 实现
  4. linux查看占用内存最多的程序
  5. sign check fail: check Sign and Data Fail
  6. 大道至简:算法工程师须知的十个炼丹trick
  7. 【kafka】Kafka Consumer 中的心跳线程有什么作用?
  8. C/C++结构体语法总结
  9. discuz二开的9月最新版本Miko二次元动漫视频网站源码完美搭建视频php源码
  10. 手机软件测试linux,手机终端软件测试浅析
  11. Anaconda Clean命令
  12. 谢孟媛老师 初级文法学习笔记
  13. 在docker中挂载硬盘
  14. 【shiro基础】springboot + shiro整合thymeleaf
  15. Debug的心路历程
  16. 动手深度学习笔记(四十)7.4. 含并行连结的网络(GoogLeNet)
  17. DOTA2攻速计算公式研究
  18. 微信退款No appropriate protocol (protocol is disabled or cipher suites are inappropriate)问题解决
  19. 机器人 抓取 Grasp Pose Detection (GPD) grasp类型转ROS的标准pose
  20. 互联网黄金十年已过 白银时代到来

热门文章

  1. boot项目中pom依赖已经删除了但是maven上还是报红线_Java Web项目是怎么跑起来的?...
  2. 手机号验证_国际手机号收不到微博验证短信,微博验证短信一直提示超过上限怎么办?...
  3. 基于颜色特征的图像匹配MATLAB,基于颜色特征的图像检索系统 这是个MATLAB程序 - 下载 - 搜珍网...
  4. layui table 弹出层刷新_layui 关闭open弹出框 刷新table表格页面的方法
  5. 【深度学习】面向医学图像的病灶分割调研(三)
  6. 【深度学习入门到精通系列】什么是消融实验(Ablation experiment)
  7. TensorFlow框架--Keras
  8. cms php vue 开源_骑士CMS文件包含+getshell
  9. linux软中断优先级,Linux中软中断机制分析
  10. php 分页参数丢失,THINKPHP3.2搜索分页丢失参数,实现保留搜索条件解决办法