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使用psutil模块获取系统状态
Aug 27 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
python实现图书借阅系统
Feb 20 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
python next()和iter()函数原理解析
Feb 07 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
Sep 25 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
一次编写,随处运行
2006/10/09 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
Vue2几种常见开局方式详解
2017/09/09 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
详解Python中的array数组模块相关使用
2016/07/05 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
皮肤科医师岗位职责
2013/12/04 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
golang json数组拼接的实例
2021/04/28 Golang
Vue h函数的使用详解
2022/02/18 Vue.js