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使用新浪微博API发送微博的例子
Apr 10 Python
Python中IPYTHON入门实例
May 11 Python
python实现TF-IDF算法解析
Jan 02 Python
Python tkinter事件高级用法实例
Jan 31 Python
python实现kmp算法的实例代码
Apr 03 Python
django的settings中设置中文支持的实现
Apr 28 Python
python覆盖写入,追加写入的实例
Jun 26 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
Python字符串格式化输出代码实例
Nov 22 Python
解决Python中回文数和质数的问题
Nov 24 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
Python 实现国产SM3加密算法的示例代码
Sep 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
PHP制作图型计数器的例子
2006/10/09 PHP
php 购物车的例子
2009/05/04 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
django中media媒体路径设置的步骤
2019/11/15 Python
python动态文本进度条的实例代码
2020/01/22 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
入党思想汇报
2014/01/05 职场文书
大型营销活动计划书
2014/04/28 职场文书
加薪申请报告范本
2015/05/15 职场文书