基于DRF令牌的身份验证VS

基于DRF令牌的身份验证VS

本文介绍了Django:基于DRF令牌的身份验证VS JSON Web令牌的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个真实世界的应用程序,用户将主要从Android,iOS设备以及台式机访问该应用程序.

I am building a real world application where users will access the app primarily from Android, iOS devices as well as Desktops.

从我的基础研究中,我已经认识到,与基于会话的身份验证相比,基于令牌的身份验证机制在客户端-服务器模型上更好,更优雅.

From my elementary research, I have realized that token based authentication mechanism is more better and elegant for client-server models as compared to session based authentication.

在Django中,我发现了两种流行的方法-

In Django, I have found two popular ways to do this -

  1. http://www.django-rest-framework.org /api-guide/authentication/#tokenauthentication
  2. http://getblimp.github.io/django-rest-framework-jwt /
  1. http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication
  2. http://getblimp.github.io/django-rest-framework-jwt/

据我所知,选项2]是1]的扩展,除了令牌是JSON(serialized)形式.我想了解选项1]和2]之间还有其他区别,以及选择其中一种的优缺点.

From what I understood, option 2] is an extension of 1] except that the Token is in the form of JSON(serialized). I would like to understand what other differences there are between option 1] and 2] and the advantages/disadvantages of choosing either.

推荐答案

它们都执行相似的任务,但差异不大.

They both carrying out similar tasks with few differences.

DRF的内置令牌身份验证

  1. 一个用于所有会话的令牌
  2. 令牌上没有时间戳

DRF JWT令牌认证

  1. 每个会话一个令牌
  2. 每个令牌的过期时间戳记

DRF的内置令牌认证

  1. 访问数据库以获取与令牌关联的用户
  2. 验证用户状态
  3. 验证用户身份

DRF JWT令牌认证

  1. 解码令牌(获取有效载荷)
  2. 验证令牌时间戳记(到期)
  3. 访问数据库以获取与有效负载中的ID相关联的用户
  4. 验证用户状态
  5. 验证用户身份

DRF的内置令牌认证

  1. 通过替换数据库中的令牌(例如:更改密码)来允许强制注销

DRF JWT令牌认证

  1. 具有到期时间的令牌
  2. 除非令牌有效,否则没有数据库命中

DRF的内置令牌认证

  1. 数据库对所有请求均命中
  2. 所有会话的单个令牌

DRF JWT令牌认证

  1. 无法在不跟踪数据库的情况下撤回令牌
  2. 发布令牌后,拥有令牌的任何人都可以提出请求
  3. 规格是开放的,没有就如何刷新达成共识

这篇关于Django:基于DRF令牌的身份验证VS JSON Web令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-30 13:10