允许DjangoauthToolkit发出jwt而不是随机字符串

2024-04-23 22:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道django oauth工具箱正在使用oauthlib,并且oauthlib提供了一个使用jwt而不是随机字符串的实现示例。在

但是,我不明白如何才能让django oauth工具箱发出jwt而不是随机字符串。有谁能给出一个示例实现或git repo来说明我们如何做到这一点?在

path('o/', include('oauth2_provider.urls', namespace='oauth2_provider')),

我不知道我们如何更改导入行中的视图以定制它以允许jwts


Tags: pathdjango字符串git示例includerepo工具箱
1条回答
网友
1楼 · 发布于 2024-04-23 22:34:29

您可以使用django-oauth-toolkit-jwt。它在存储库https://github.com/Humanitec/django-oauth-toolkit-jwt中可用。在

安装 增加pip要求:

git+https://github.com/Humanitec/django-oauth-toolkit-jwt#egg=django-oauth-toolkit-jwt

生成密钥 要生成RS256(RSA签名,使用SHA-256)公钥和私钥,请执行以下操作:

^{pr2}$

生产者配置 要使用此库颁发令牌,请按如下方式配置项目:

向已安装的应用程序添加oauth2_provider和oauth2_provider_jwt:

在设置.py

INSTALLED_APPS = (
    ...
    'oauth2_provider',
    'oauth2_provider_jwt',
)

包括新的oauth URL:

在网址.py在

urlpatterns = [
    ...
    url(r'^oauth/', include('oauth2_provider_jwt.urls', namespace='oauth2_provider_jwt')),
]

在中间件中添加以下内容:

在设置.py在

MIDDLEWARE = [
    ...
    'oauth2_provider.middleware.OAuth2TokenMiddleware',
]

最后添加自定义后端身份验证:

在设置.py在

AUTHENTICATION_BACKENDS = (
    ...
    'oauth2_provider.backends.OAuth2Backend',
)

现在我们需要在我们的配置中设置一个JWTüu ISSUER变量,它将是发布者的名称。取我们之前生成的RSA256私钥,并将其存储在JWT_private_key_RSA_Uvariable*中。例如:

在设置.py在

JWT_ISSUER = 'OneIssuer'
JWT_PRIVATE_KEY_RSA_ONEISSUER = """
  -BEGIN RSA PRIVATE KEY  -
MIIBOAIBAAJAbCmbRUsLrsv0/Cq7DVDpUooPS1V2sr0EhTZAZmJhid2o/+ya/28m
...
6D0+csaGDlZ9GbrTpTJUObNENNHqfrHGfqzDxQ==
  -END RSA PRIVATE KEY  -
"""

相关问题 更多 >