Django自定义认证方式用法示例


Posted in Python onJune 23, 2017

本文实例讲述了Django自定义认证方式。分享给大家供大家参考,具体如下:

创建登录应用

首先创建一个新的login app,用来存放认证用到代码

python manage.py startapp login

修改settings.py中的认证项

AUTHENTICATION_BACKENDS = (
  'login.auth.UsernamePasswordAuth',
)

自定义认证类

在login app下创建auth.py文件,内容如下

#coding:utf-8
from django.contrib.auth.models import User
class UsernamePasswordAuth(object):
  def authenticate(self, username=None, password=None):
    print("UsernamePasswordAuth.authenticate")
    try:
      user = User.objects.get(username__iexact=username)
      if user.check_password(password):
        return user
    except User.DoesNotExist:
      return None
  def get_user(self, user_id):
    print("UsernamePasswordAuth.get_user")
    try:
      user = User.objects.get(pk=user_id)
      return user
    except User.DoesNotExist:
      return None

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
Sep 14 Python
Python 中导入csv数据的三种方法
Nov 01 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
Python 线程池用法简单示例
Oct 02 Python
如何理解python对象
Jun 21 Python
python中return不返回值的问题解析
Jul 22 Python
python 实现逻辑回归
Dec 30 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 Python
Django实现的自定义访问日志模块示例
Jun 23 #Python
详解Python文本操作相关模块
Jun 22 #Python
python字符串过滤性能比较5种方法
Jun 22 #Python
Python编程实现的简单Web服务器示例
Jun 22 #Python
Python实现复杂对象转JSON的方法示例
Jun 22 #Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 #Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 #Python
You might like
一个SQL管理员的web接口
2006/10/09 PHP
表单复选框向PHP传输数据的代码
2007/11/13 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
Laravel 5.3 学习笔记之 错误&日志
2016/08/28 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
python多进程实现文件下载传输功能
2018/07/28 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
护理专科自荐书范文
2014/02/18 职场文书
购房意向书
2014/04/01 职场文书
指导教师评语
2014/04/26 职场文书
骨干教师考核评语
2014/12/31 职场文书
终止劳动合同通知书
2015/04/16 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript
OpenFeign实现远程调用
2022/08/14 Java/Android