django验证码登录_双重认证怎么关闭

django验证码登录_双重认证怎么关闭djoser是什么?作用:Django认证系统的REST实现。djoser库提供了一组DjangoRestFramework视图,用于处理注册、登录、注销、密码重置和帐户激活等基本操作。它适用于

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

djoser是什么?

  作用:Django认证系统的REST实现。djoser库提供了一组Django Rest Framework视图,用于处理注册、登录、注销、密码重置和帐户激活等基本操作。它适用于自定义用户模型。

  djoser并没有重写Django代码(例如PasswordResetForm),而是重新实现了一些东西,以更好地适应单页应用程序体系结构。
 

环境准备与安装

 

支持的python版本

  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8
     

支持的Django版本

  • Django 1.11
  • Django 2.2
  • Django 3.1
     

支持的drf版本

  • Django Rest Framework 3.9
  • Django Rest Framework 3.10
  • Django Rest Framework 3.11
     

支持的身份验证后端

  • 基于drf的身份认证Token
  • 基于django-rest-framework-simplejwt的JWT认证
     

可用端点

  • /users/
  • /users/me/
  • /users/confirm/
  • /users/resend_activation/
  • /users/set_password/
  • /users/reset_password/
  • /users/reset_password_confirm/
  • /users/set_username/
  • /users/reset_username/
  • /users/reset_username_confirm/
  • /token/login/ (Token Based Authentication)
  • /token/logout/ (Token Based Authentication)
  • /jwt/create/ (JSON Web Token Authentication)
  • /jwt/refresh/ (JSON Web Token Authentication)
  • /jwt/verify/ (JSON Web Token Authentication)
     

安装

pip install -U djoser

如果你打算使用JWT认证,你还需要安装下面的包

pip install -U djangorestframework_simplejwt

最后,如果您打算使用基于第三方的身份验证,例如facebook,则需要安装社交身份验证应用程序django,其中包括:

pip install -U social-auth-app-django

 

配置信息

INSTALLED_APPS里添加如下代码:

INSTALLED_APPS = (
    'django.contrib.auth',
    (...),
    'rest_framework',
    'djoser',
    (...),
)

urls.py中添加如下代码

urlpatterns = [
    (...),
    url(r'^auth/', include('djoser.urls')),
]

官网上强调了:默认情况下,HTTP Basic Auth验证策略采用Django Rest Framework。并且强烈反对且不提供任何对basic auth的明确支持。我们应该按照“身份验证后端”中的说明来自定义身份验证后端。
 

测试程序

该库还提供了一个独立的测试应用程序,让我们了解基本的工作方式。在将djoser集成到后端应用程序之前,我们有必要去了解下

接下来我们会模拟最简单的流程:注册用户、登录和注销。
 

环境准备

克隆git上的项目,并且在虚拟环境中安装djoser

git clone git@github.com:sunscrapers/djoser.git

克隆完项目的目录如下:
django验证码登录_双重认证怎么关闭
安装项目中的依赖包(虚拟环境用的poetry)

poetry install

安装完成后,cd到testproject目录中,执行迁移命令

python manage.py migrate

最后直接通过pycharm启动项目,环境就算准备好了
 

创建用户

使用接口测试工具postman或者其他工具,输入url和data,就能访问接口了
django验证码登录_双重认证怎么关闭
可以看到我们已经成功创建了一个id为2的用户
 

未登录查询用户信息

刚才我们只是创建了一个新用户,但是没有进行登录操作,此时我们去查用户信息,肯定是不行的
django验证码登录_双重认证怎么关闭
正如我们所看到的,我们无法在不登录的情况下访问用户配置文件。
 

用户登录

我们访问用户登录接口,就可以返回一个token
django验证码登录_双重认证怎么关闭
 

登录后查询用户信息

然后我们在headers中添加Authorization,对应的值为Token 刚刚返回的token值,注意中间要有一个空格
django验证码登录_双重认证怎么关闭
之后我们再访问查询用户信息接口,就能正确返回用户信息了
django验证码登录_双重认证怎么关闭
 

退出登录

最后访问退出登录接口,就可以退出登录了
django验证码登录_双重认证怎么关闭
 

退出后再查询用户信息

当我们退出登录后,再次用之前的token去查询用户信息后就会报错
django验证码登录_双重认证怎么关闭
 

身份验证后端

djoser有基于以下两种的认证方式

  • Token Based Authentication
  • JSON Web Token Authentication

Token Based Authentication使用方式

INSTALLED_APPS 中添加rest_framework.authtoken

INSTALLED_APPS = [
    'django.contrib.auth',
    (...),
    'rest_framework',
    'rest_framework.authtoken',
    'djoser',
    (...),
]

然后在urls.py配置路径

urlpatterns = [
    url(r'^auth/', include('djoser.urls.authtoken')),
]

再在settings.py中的REST_FRAMEWORK配置中添加rest_framework.authentication.TokenAuthentication

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
    ),
}

最后执行迁移命令,迁移authauthtoken apps:

python manage.py migrate

 

JSON Web Token Authentication

settings.py中的REST_FRAMEWORK配置中添加rest_framework_simplejwt.authentication.JWTAuthentication

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
        (...)
    ),
}

然后配置django-rest-framework-simplejwt使用授权时的请求头中的请求标识,格式为:JWT <access_token>,配置信息如下:

SIMPLE_JWT = {
   'AUTH_HEADER_TYPES': ('JWT',),
}

最后在urls.py配置路径

urlpatterns = [
    (...),
    url(r'^auth/', include('djoser.urls')),
    url(r'^auth/', include('djoser.urls.jwt')),
]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/165361.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JDK 安装与环境变量配置(Win10详细版)

    JDK 安装与环境变量配置(Win10详细版)前言为什么写这篇文章呢,因为我不想再去百度搜别人的文章了,所以自己写一篇以作记录。准备工作JDK8下载地址一个JDK安装程序,这是是1.8版本,因为新的JDK版本都没有什么很大的亮点,如下图所示,安装鼠标双击运行,选择“是”,然后如下图:点击下一步:我在这里并不修改JDK的安装路径,所以无需改动,点击下一步:安装过程中会弹出jre的安装提示框,如下所示:这里无需…

  • MCTS (Monte Carlo Tree Search)[通俗易懂]

    MCTS (Monte Carlo Tree Search)[通俗易懂]以下文章摘录自:《机器学习观止——核心原理与实践》京东:https://item.jd.com/13166960.html当当:http://product.dangdang.com/29218274.html(由于博客系统问题,部分公式、图片和格式有可能存在显示问题,请参阅原书了解详情)MCTS(MonteCarloTreeSearch)1.1MCTS概述在前面的学习中,我们分析了蒙特卡洛方法,本章节将为大家解开蒙特卡洛树搜索的“面纱”。虽…

  • 八、JDK1.8中HashMap扩容机制

    八、JDK1.8中HashMap扩容机制导读前面文章一、深入理解-Java集合初篇中我们对Java的集合体系进行一个简单的分析介绍,上两篇文章二、Jdk1.7和1.8中HashMap数据结构及源码分析、三、JDK1.7和1.8HashMap数据结构及源码分析-续中我们分别对JDK1.7和JDK1.8中HashMap的数据结构、主要声明变量、构造函数、HashMap的put操作方法做了深入的讲解和源码分析。四、深入理解Java中的HashMap「网易面试快答」文章中主要针对面试中常见的面试问题进行简单解答。五、深入理解JDK1.7中H

  • 视频一键识别生成字幕

    视频一键识别生成字幕前不久我介绍了通过视频生成字幕的技术原理(博客、B站),我现在把这个功能打包成一个易于操作的界面,如下图所属:操作非常的简单,打开程序后,点击上面【打开要识别的视频按钮】,就会弹出下图的打开文件对话框,选择需要生成字幕的视频:稍等片刻,待程序识别并生成完成后就弹出如下保存对话框,填写要保存的字幕文件名就可以了:最后生成类似如下的文件就可以在你的视频编辑软件中进行合并了。软件下载…

  • 推荐书籍:FFmpeg从入门到精通

    推荐书籍:FFmpeg从入门到精通本书是一本介绍FFmpeg的实战技术指南,全书共10章,分为两个部分。第一部分部分(第1~7章)为FFmpeg的命令行使用篇,介绍了FFmpeg的基础组成部分、FFmpeg工具使用、FFmpeg的封装操作、FFmpeg的转码操作、FFmpeg的流媒体操作、FFmpeg的滤镜操作、FFmpeg的设备操作。第二部分(第8~10章)为FFmpeg的API使用篇,介绍了FFmpeg封装部分的API使用操作、FFmpeg编解码部分的API使用操作,FFmpeg滤镜部分的API使用操作,相关操作均以实例方式进行

  • Java中的对象数组「建议收藏」

    Java中的对象数组「建议收藏」Java对象数组在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;而自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对其赋值、引用等操作,如果没有单独对每个对象元素创建,会导致空指针异常1.基本数据类型数组数组都要先声明、再创建后使用。基本数据类型数组的声明有以下几种格式(以int类型为例):①int[]array;②int[]array=newint;③in…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号