django drf 自定义jwt用户验证逻辑

新建Backend类

from django.contrib.auth.backends import ModelBackend
from django.shortcuts import render

from django.http import HttpResponse
# Create your views here.

from django.contrib.auth import get_user_model
from django.db.models import Q

User = get_user_model()  # 须在settings里配置AUTH_USER_MODEL = ‘users.UserProfile‘

class CumstomBackend(ModelBackend):
    def authenticate(self, request, username=None, password=None, **kwargs):
        try:
            user = User.objects.get(Q(username=username)|Q(mobile=username))
            if user.check_password(password):
                return user
        except Exception as e:
            return None

配置settings

AUTH_USER_MODEL = ‘users.UserProfile‘
AUTHENTICATION_BACKENDS=(
    ‘users.views.CumstomBackend‘,
)

原文地址:https://www.cnblogs.com/chenyishi/p/10659230.html

时间: 2024-10-13 06:46:14

django drf 自定义jwt用户验证逻辑的相关文章

微信小程序登录对接Django后端实现JWT方式验证登录

先上效果图 点击授权按钮后可以显示部分资料和头像,点击修改资料可以修改部分资料. 流程 1.使用微信小程序登录和获取用户信息Api接口 2.把Api获取的用户资料和code发送给django后端 3.通过微信接口把code换取成openid 4.后端将openid作为用户名和密码 5.后端通过JSON web token方式登录,把token和用户id传回小程序 6.小程序将token和用户id保存在storage中 下次请求需要验证用户身份的页面时,在header中加入token这个字段 微信

django drf框架中的user验证以及JWT拓展的介绍

登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户状态保存.这个拓展比传统的CSRF更加安全.先来介绍一下JWT认证机制吧! Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身

DRF自定义用户认证

一.settings中配置 AUTHENTICATION_BACKENDS = ( 'users.views.CustomBackend', ) 二.users/views.py # users.views.py from django.contrib.auth.backends import ModelBackend from django.contrib.auth import get_user_model from django.db.models import Q User = get_

springSecruity自定义用户认证逻辑

1. 创建项目 使用idea中的spring 初始化工具引入springboot和springsecruity初始化项目 最终pom.xml如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

mvc 自定义 AuthorizeAttribute 验证逻辑

public class AuthorizationFilterAttribute : AuthorizeAttribute { Dictionary<string, string> roles = new Dictionary<string, string>() { {"1","/Home/Index"}, {"2",""}, }; /// <summary> /// 自定义验证逻辑 返回

Django自带用户验证框架

一  分析源码 User   Django的标准库存放在 django.contrib 包中.每个子包都是一个独立的附加功能包. 这些子包一般是互相独立的,不过有些django.contrib子包需要依赖其他子包,其中django.contrib.auth 为Django的用户验证框架 1.  导入方法 from django.contrib.auth.models import User 2.  分析User继承链 User --> AbstractUser  --> (AbstractBa

Django 类方式view进行进行用户验证

问题: Django中,view的书写方式有两种,一种是def函数方式,一种是class方式,函数方式通过@login_required装饰器标记函数,就必须通过用户验证,而类,则没办法通过此方法进行标记 那,如何解决这个问题? 利用类的继承方式,写一个基类,需要验证的class view类,首先继承这个基类,后面所有通过此类的url都需要进行用户验证登录,因为可能有许多的view需要使用该类,需要独立出来,建立在utils目录下,起名mixin_is_login.py,然后在各种需要的view

自定义验证逻辑

Asp.net MVC框架的扩展性意味着实现自定义验证逻辑有着很大的可行性.主要有两个核心方法: 1.将验证逻辑封装在自定义的数据注解中. 2.将验证逻辑封装在模型对象中. 把验证逻辑封装在自定义数据注解中可以轻松地实现在多个模型中重用逻辑,这需要在特性内部编写代码以对应不同类型的模型,一旦实现了,新的注解就可以在多处重用. 如果把验证逻辑放入模型对象中,就意味着验证逻辑可以很容易的编码实现,但不利于实现逻辑的重用. 一.自定义注解 所有的验证注解特性最终都派生自基类:ValidationAtt

asp.net mvc 自定义全局过滤器 验证用户是否登录

一般具有用户模块的系统都需要对用户是否登录进行验证,如果用户登录了就可以继续操作,否则退回用户的登录页面 对于这样的需求我们可以通过自定义一个独立的方法来完成验证的操作,但是这样代码的重复率就大大提高了 对于这样的需求,有一个比较好的解决方案,通过自定义一个全局的过滤器来完成这个操作 这里我们需要实现AuthorizeAttribute特性来完成对用户身份的验证 首先给出自定义的类,通过这个类来实现对用户身份的判断,通过重写HandleUnauthorizedRequest函数 来完成用户验证失