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远程桌面协议RDPY安装使用介绍
Apr 15 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
解决 jupyter notebook 回车换两行问题
Apr 15 Python
python中对二维列表中一维列表的调用方法
Jun 07 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
python中re模块知识点总结
Jan 17 Python
Python操作Excel的学习笔记
Feb 18 Python
如何使用PyCharm及常用配置详解
Jun 03 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
模仿OSO的论坛(一)
2006/10/09 PHP
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
php实现通过ftp上传文件
2015/06/19 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
python实现人人网登录示例分享
2014/01/19 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
Python批量更改文件名的实现方法
2017/10/29 Python
python实现学生信息管理系统
2020/04/05 Python
python求最大连续子数组的和
2018/07/07 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
详解python中docx库的安装过程
2019/11/08 Python
django序列化serializers过程解析
2019/12/14 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
基于python实现操作redis及消息队列
2020/08/27 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
2013年研究生毕业感言
2014/02/06 职场文书
合伙经营协议书范本
2014/04/18 职场文书
地球一小时宣传标语
2014/06/24 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python