login_required -- 登录验证

方法源码:

def login_required(function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None):

"""

Decorator for views that checks that the user is logged in, redirecting

to the log-in page if necessary.

"""

actual_decorator = user_passes_test(

lambda u: u.is_authenticated,

login_url=login_url,

redirect_field_name=redirect_field_name

)

if function:

return actual_decorator(function)

return actual_decorator

# user_passes_test源码

def user_passes_test(test_func, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):

"""

Decorator for views that checks that the user passes the given test,

redirecting to the log-in page if necessary. The test should be a callable

that takes the user object and returns True if the user passes.

"""

def decorator(view_func):

@wraps(view_func)

def _wrapped_view(request, *args, **kwargs):

if test_func(request.user):

return view_func(request, *args, **kwargs)

path = request.build_absolute_uri()

resolved_login_url = resolve_url(login_url or settings.LOGIN_URL)

# If the login url is the same scheme and net location then just

# use the path as the "next" url.

login_scheme, login_netloc = urlparse(resolved_login_url)[:2]

current_scheme, current_netloc = urlparse(path)[:2]

if ((not login_scheme or login_scheme == current_scheme) and

(not login_netloc or login_netloc == current_netloc)):

path = request.get_full_path()

from django.contrib.auth.views import redirect_to_login

return redirect_to_login(

path, resolved_login_url, redirect_field_name)

return _wrapped_view

return decorator

使用方法:

login_url取值方法:resolved_login_url = resolve_url(login_url or settings.LOGIN_URL) 默认会跳转到/accounts/login/页面进行重新登录.可以自己定义登录页面的url为/accounts/login/或在设置(settings.py)中设置LOGIN_URL覆盖默认设置.推荐还是遵循django源码,自己定义登录页面的url为/accounts/login/

# 普通写法

from django.contrib.auth.decorators import login_required

@login_required(login_url='/accounts/login/')

def my_view(request):

...

# 通用视图:

from django.urls import path

from rest_framework.urlpatterns import format_suffix_patterns

from django.contrib.auth.decorators import login_required

from okr import views

urlpatterns = [

path("accounts/login/", views.LoginView.as_view(), name="login"),

path("home/", login_required(views.HomeView.as_view()), name="home")

]

java登录验证技术,login_required -- 登录验证相关推荐

  1. 交叉验证技术(part1)--概述

    学习笔记,仅供参考,有错必纠 这个系列可能只剩概述了,能不能更看缘分吧 交叉验证技术 自助法交叉验证 自助法632交叉验证 k折交叉验证 重复交叉验证 留一法交叉验证 留一组交叉验证 袋外交叉验证 可 ...

  2. 数字IC验证:几大功能验证(Functional Verification)技术有哪些?

    文章目录 功能验证的目的 五大验证技术 1 静态验证 (Static Verification) 2 功能仿真 (Functional Simulation) 3 FPGA原型验证 (FPGA Pro ...

  3. 登录工程:传统 Web 应用中的身份验证技术

    标题中 "传统 Web 应用" 这一说法也并没有什么官方定义,只是为了与"现代化 Web 应用"形成比较而自拟的一个概念.所谓现代化 Web 应用指的是那些基于 ...

  4. java token生成和验证_Java Token登录验证 生成解析Token

    借鉴参考 Java Token登录验证 使用jjwt生成和解析JWT java基于token验证之登陆验证 等 什么是Token? 我的理解来说 token就是你访问服务器的口令,只要token合法, ...

  5. Java滑动验证_自动滑块验证登录QQ-java实现

    之前,我用php配合java写了一个qq群签到的脚本.需要手动更新cookie,很烦. 最近学习刷题过程中,碰到了很多事情,很烦.就准备写几天代码,把之前的脚本,完整的只用java来实现,顺便平复一下 ...

  6. java ajax 登陆验证,Spring Security4实例(Java config版)——ajax登录,自定义验证

    本文源码请看这里 首先添加起步依赖(如果不是springboot项目,自行切换为Spring Security依赖) org.springframework.boot spring-boot-star ...

  7. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...

  8. php 语法验证_PHP用户登录验证模块

    这篇文章介绍的内容是关于PHP用户登录验证模块 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 实现用户登录 >>>1 创建登录表单 登录表单的HTML代码如下: U ...

  9. 【Gulimall+】第三方服务:对象存储OSS、短信验证、社交登录、支付宝支付

    文章目录 对象存储OSS 基本配置 java实现 短信认证 前端验证码倒计时 整合短信验证码 密码存储 社交登录:微博 基本流程 java实现 支付宝支付 基本配置 java实现 对象存储OSS 一谈 ...

最新文章

  1. Matlab图形绘制经典案例 (1)
  2. oracle 查二进制字符串,检测二进制文件 - Oracle® Developer Studio 12.5:Discover 和 Uncover 用户指南...
  3. JAVA多线程机制之死锁
  4. IT工作一年的总结——来自一个小菜鸟
  5. thinkphp3.2自定义success及error跳转页面
  6. [剑指offer][JAVA]面试题第[39]题[数组中出现次数超过一半的数字][HashMap][摩尔投票法]
  7. 可燃气体浓度多少合格_安燃无恙 | 可燃气体报警器的常见故障处理
  8. 【Python学习】 caffe-master 之 mnist 详解
  9. scapy能干点啥?
  10. PLC与C语言的本质区别,一文告诉你PLC与计算机的本质区别在哪里!
  11. python画带状图_13个使用Matplotlib实现数据可视化的Python代码
  12. reactor-netty中TcpClient的newHandler过程
  13. 关于WPF 引用字体文件无效果的相关问题
  14. 计算机恢复数据怎么恢复,电脑数据恢复,详细教您电脑数据如何恢复
  15. [K.O.]安装iTunes提示此Windows Installer软件包有一个问题…!
  16. 利用matlab设计矩形脉冲信号,信号课程设计
  17. java文字淡入淡出显示特效,jQuery超酷文字淡入淡出显示特效
  18. 好记性不如“烂笔头”
  19. javaweb实现登陆,注册,修改密码,显示信息,修改个人信息功能
  20. redhat linux 禁用网卡,RedHat Linux下防火墙配置技巧

热门文章

  1. C++之继承探究(四):继承的使用
  2. dcmtk编译 android,windows下编译dcmtk的Android版本
  3. kuboard使用mysql_Kuboard Kubernetes安装
  4. python猴子选大王_“猴子选大王” 算法 python实现
  5. java 字符串 ansi转utf8_在Java中将ANSI字符转换为UTF-8
  6. java异步处理_Java编程开发好入门吗 消息队列的用途有哪些
  7. 数据结构专题(二):2.5在链表指定位置插入元素
  8. 获取界面url_好冷阿|编写一个自己的天气查询应用(可视化界面),提醒她注意保暖!...
  9. 我的世界pc正版好玩的服务器,都来看看好玩的服务器
  10. Android仿探探卡片拖拽,[转]仿探探拖拽卡片效果Vue3实现