- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
作用:Django
认证系统的REST
实现。djoser
库提供了一组Django Rest Framework
视图,用于处理注册、登录、注销、密码重置和帐户激活等基本操作。它适用于自定义用户模型。
djoser
并没有重写Django
代码(例如PasswordResetForm
),而是重新实现了一些东西,以更好地适应单页应用程序体系结构。
django-rest-framework-simplejwt
的JWT认证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
克隆完项目的目录如下:
安装项目中的依赖包(虚拟环境用的poetry)
poetry install
安装完成后,cd到testproject目录中,执行迁移命令
python manage.py migrate
最后直接通过pycharm启动项目,环境就算准备好了
使用接口测试工具postman
或者其他工具,输入url和data,就能访问接口了
可以看到我们已经成功创建了一个id为2的用户
刚才我们只是创建了一个新用户,但是没有进行登录操作,此时我们去查用户信息,肯定是不行的
正如我们所看到的,我们无法在不登录的情况下访问用户配置文件。
我们访问用户登录接口,就可以返回一个token
然后我们在headers
中添加Authorization
,对应的值为Token 刚刚返回的token值
,注意中间要有一个空格
之后我们再访问查询用户信息接口,就能正确返回用户信息了
最后访问退出登录接口,就可以退出登录了
当我们退出登录后,再次用之前的token去查询用户信息后就会报错
djoser有基于以下两种的认证方式
在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',
),
}
最后执行迁移命令,迁移auth
和authtoken apps
:
python manage.py migrate
在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')),
]
djoser是什么? 作用:Django认证系统的REST实现。djoser库提供了一组Django Rest Framework视图,用于处理注册、登录、注销、密码重置和帐户激活等基本操作。它适用于
我在我的 WebApp 中使用 Djoser 进行身份验证,它非常好。但是,我担心一些端点,比如 auth/users 如果传递了 token ,则返回所有用户。我不会使用此端点并将在前端禁用它,因为
我在让 Djoser 密码重置模块在我正在为其开发的 API 上工作时遇到了一些问题。 在我的 DJANGO 设置中: EMAIL_USE_TLS=True EMAIL_HOST=smtp.gmail
我有一个使用 Djoser 进行身份验证的 DRF 项目。计划是覆盖 Djoser 的默认激活电子邮件并发送一些 HTML 模板电子邮件。这是我拥有的: # settings.py DJOSER =
我正在使用 djoser 进行身份验证。我想自定义 djoser 的创建用户端点。我有一个用户应用程序。这是我的用户模型 from django.db import models class User
如何更改电子邮件 djoser 发送的链接使用的域? 最佳答案 我想通了,要更改链接域,您需要将 DOMAIN 和 SITE_NAME 添加到您的项目设置中。例子: DOMAIN = config('
所以我最近尝试使用 djoser,我想使用电子邮件而不是用户名登录。 左塞尔:http://djoser.readthedocs.io/en/latest/index.html 然后我尝试自定义 to
我对如何修改 Djoser 的注册端点感到困惑。我想做的就是向端点添加范围限制,但我不明白如何覆盖它。文档上的这个页面讨论了它:https://djoser.readthedocs.io/en/2.1
所以 Djoser JWT 在您登录时提供了一个访问 token ,该 token 过期多久? 最佳答案 您必须在设置中提供该值。我使用以下配置。对于访问 token ,10 分钟可能更好。 SIMP
我一直在寻找有关如何执行此操作的更多信息,但似乎几乎没有文档帮助。 本质上我想要做的是为激活电子邮件创建一个新模板,以便链接可以以 localhost:3000 而不是 localhost:8000
我使用 Django Rest 框架和 Djoser 进行身份验证和用户注册。 当新用户注册时,Djoser 会发送一封激活电子邮件,其中包含执行 GET 请求的链接。为了激活,我需要从激活 URL
我无法通过激活链接激活用户。 如何正确配置路径来处理他们的请求? 我的配置: DJOSER = { 'PASSWORD_RESET_CONFIRM_URL': 'api/v1/auth/use
我在 django rest 框架中使用 djoser,我想从创建用户表单中删除用户名字段: settings.py : 'SERIALIZERS': { 'user_create': 'us
我正在尝试使用来自 Djoser 的“注册”端点.它工作正常,但我需要的字段不仅仅是“用户名”、“电子邮件”和“密码”。 我见过这个 question事实上我可以看到我想要的字段(在可浏览的 API
我已经使用 Django Ninja 框架实现了 CRUD,但现在我想在我的应用程序中进行身份验证,我已经安装并配置了 Djoser,所以现在我可以生成 token ,但我不知道如何在我的 CRUD
我目前正在尝试使用 Django 测试我的 API 端点。到目前为止,我已经使用了 APITestCase,但在登录和使用我的 token 时遇到了问题。 我有一个密码为“1”的 Clark 用户,我
我正在尝试将 djoser 与 token 身份验证一起使用,但使用的是 django-rest-knox token 。 我已将 TOKEN_MODEL 设置为 knox.models.AuthTo
我目前正在为一个项目实现 webauthn。重点是让用户可以在网站上的手机上使用 FaceId 或指纹扫描。 我尝试了 webauthn 的 djoser 版本,但我想为已经拥有帐户的用户提供这种可能
我在我的项目中使用 Djoser 进行身份验证。一直在努力添加电子邮件激活超过 4 天,但似乎未能很好地捕获它,因为文档对我来说有点难以理解。 这是我的代码settings.py #change au
我正计划使用Django Rest Framework构建应用程序。我对使用Django-Rest-Framework-JWT身份验证机制比对 session 或 token 身份验证机制更感兴趣。
我是一名优秀的程序员,十分优秀!