django rest框架的身份验证

django-rest-knox的Python项目详细描述


django rest knox

image

django rest auth的身份验证模块

knox为Django REST Framework提供了易于使用的身份验证,目的是允许 对于基于rest的应用程序中的常见模式 额外的努力;并确保连接保持安全。

knox身份验证是基于令牌的,类似于TokenAuthentication 内置于DRF。但是,它克服了 默认实现:

  • DRF令牌限制为每个用户一个。这不利于 从多个设备安全登录,因为令牌是共享的。 它还要求all设备在服务器端注销 需要注销(即删除令牌)。

    knox为每次调用login视图提供一个令牌-允许每个 客户端拥有自己的令牌,该令牌在服务器端被删除 当客户端注销时。

    knox还提供了一个选项,让登录的客户机删除all 服务器具有的令牌-强制所有客户端重新验证。

  • drf令牌未加密地存储在数据库中。这将允许 如果 数据库被破坏了。

    knox令牌只以加密形式存储。即使 数据库不知何故被盗,攻击者将无法登录 带着偷来的证件。

  • DRF令牌跟踪其创建时间,但没有内置机制 对于过期的令牌。knox令牌可以在 应用程序设置(默认为10小时)。

更多信息可以在 Documentation

在本地运行测试

如果需要在本地调试测试并且安装了docker,请执行以下操作:

只要运行./docker-run-test.sh脚本,它就会在每个python中运行测试套件/ Django版本。

您也可以在根文件夹中运行常规的tox,但是这将使测试 python/django版本要复杂一些。

处理文档

我们的文档由Mkdocs生成。

您可以参考他们关于如何在本地安装的文档。

另一种选择是在这个存储库中使用mkdocs.sh。 它将在docker容器中运行mkdocs。

不带任何参数运行脚本将触发serve命令。 服务器在本地主机上的端口8000上公开。

要配置端口,serve命令将服务器公开给 可以使用以下环境变量:

MKDOCS_DEV_PORT="8080"

您还可以传递任何类似这样的mkdocs命令:

./mkdocs build
./mkdocs --help

查看Mkdocs documentation了解更多信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么参数。getType()。isInstance(HttpServletRequest.class)返回值为false,但use“==”为true   使用Java的文本文件中的简单列表   linux Java创建具有特定所有者(用户/组)的文件和目录   java我试图解析一个文本文件,以计数唯一字符串的数量,并打印一些关于这些字符串的信息   雅加达ee如何使用JavaEE6@Resource注释   java从数据库中获取所有值,并将其存储在字符串数组中   java需要ArrayList中的单个数组   java变量id可能未使用lombok初始化Spring引导控制器   JavaS3客户端。读取超过文件大小时的GetObject行为   java在另一个活动列表视图中显示JSONObject   java spring引导fat jar注册到带有奇怪端口的eureka   java如何与mongoDB建立Android Studio连接?   java LinkedIn OAuth2/oauth/v2/accessToken响应未返回“令牌类型”   java如何在jtree中只列出非隐藏和非系统文件   Mybatis批量将Java BigDecimal插入SQL Server decimal(18,2)无法正常工作   java Hibernate Criteria Builder:如何按可为空的实体属性进行筛选?   如果涉及方法内变量的范围,python与java是否不同?   java如何实现web服务客户端,该客户端通过基于NTLM身份验证的身份验证连接到外部web服务   java使Jackson在反序列化期间无法将double转换为int