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使用迭代器捕获Generator返回值的方法
Apr 05 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
python 基本数据类型占用内存空间大小的实例
Jun 12 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
python画图把时间作为横坐标的方法
Jul 07 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
python tornado使用流生成图片的例子
Nov 18 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
详解Python中的路径问题
Sep 02 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
Python wordcloud库安装方法总结
Dec 31 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
php中计算时间差的几种方法
2009/12/31 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
Python中生成Epoch的方法
2017/04/26 Python
Python3计算三角形的面积代码
2017/12/18 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
五十岁生日宴会答谢词
2014/01/15 职场文书
个人课题方案
2014/05/08 职场文书
2015年春节标语口号
2014/12/09 职场文书
转正申请报告格式
2015/05/15 职场文书
2016大一新生军训感言
2015/12/08 职场文书
九年级数学教学反思
2016/02/17 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
Golang二维数组的使用方式
2021/05/28 Golang
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL