Django-Ninja-JWT 使用教程

Django-Ninja-JWT 使用教程

django-ninja-jwt A JSON Web Token authentication plugin for the Django REST Framework. 项目地址: https://gitcode.com/gh_mirrors/dj/django-ninja-jwt

1. 项目介绍

Django-Ninja-JWT 是一个为 Django-Ninja 框架提供的 JSON Web Token (JWT) 认证插件。它是基于 Jazzband 的 Simple JWT 项目开发的,专门为 Django-Ninja 框架进行了适配,并移除了对 Django REST Framework (DRF) 的依赖。Django-Ninja-JWT 提供了 JWT 认证的基本功能,包括令牌的获取、刷新和验证。

2. 项目快速启动

2.1 安装 Django-Ninja-JWT

首先,使用 pip 安装 Django-Ninja-JWT:

pip install django-ninja-jwt

2.2 配置 Django 项目

在 Django 项目的 settings.py 文件中,添加 ninja_jwtINSTALLED_APPS

INSTALLED_APPS = [
    ...
    'ninja_jwt',
    ...
]

2.3 注册控制器

在 Django-Ninja 的 API 中注册 NinjaJWTDefaultController 控制器:

from ninja_jwt.controller import NinjaJWTDefaultController
from ninja_extra import NinjaExtraAPI

api = NinjaExtraAPI()
api.register_controllers(NinjaJWTDefaultController)

2.4 测试 JWT 认证

使用 curl 命令测试 JWT 认证功能:

curl -X POST -H "Content-Type: application/json" -d '{"username": "davidattenborough", "password": "boatymcboatface"}' http://localhost:8000/api/token/pair

返回结果将包含 accessrefresh 令牌。

3. 应用案例和最佳实践

3.1 自定义控制器

如果需要自定义 JWT 认证的路由,可以继承 TokenObtainPairControllerTokenVerificationController 控制器,并进行修改:

from ninja_extra import api_controller
from ninja_jwt.controller import TokenObtainPairController

@api_controller('token', tags=['Auth'])
class MyCustomController(TokenObtainPairController):
    """自定义获取和刷新令牌的路由"""
    ...

api.register_controllers(MyCustomController)

3.2 使用本地化

为了支持本地化/翻译,确保在 INSTALLED_APPS 中包含 ninja_jwt

INSTALLED_APPS = [
    ...
    'ninja_jwt',
    ...
]

4. 典型生态项目

4.1 Django-Ninja

Django-Ninja 是一个基于 Django 的快速 API 开发框架,提供了简洁的 API 定义和强大的功能。Django-Ninja-JWT 是 Django-Ninja 生态系统中的一个重要组件,为开发者提供了 JWT 认证的支持。

4.2 Django REST Framework (DRF)

虽然 Django-Ninja-JWT 移除了对 DRF 的依赖,但 DRF 本身也是一个非常流行的 Django API 开发框架,提供了丰富的功能和插件。开发者可以根据项目需求选择合适的框架。

4.3 Simple JWT

Simple JWT 是 Django REST Framework 的一个 JWT 认证插件,Django-Ninja-JWT 是基于 Simple JWT 开发的,因此两者在功能和实现上有一定的相似性。开发者可以根据项目需求选择合适的 JWT 认证插件。

通过以上步骤,您可以快速上手并使用 Django-Ninja-JWT 进行 JWT 认证开发。

django-ninja-jwt A JSON Web Token authentication plugin for the Django REST Framework. 项目地址: https://gitcode.com/gh_mirrors/dj/django-ninja-jwt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孔岱怀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值