首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许django-oauth-工具箱发出jwt而不是随机字符串

允许django-oauth-工具箱发出jwt而不是随机字符串
EN

Stack Overflow用户
提问于 2019-02-11 04:21:59
回答 1查看 762关注 0票数 3

据我所知,django-oauth-toolkit正在使用oauthlib,而oauthlib提供了一个实现jwt而不是随机字符串的示例。

但是,我不明白如何让django-oauth-toolkit发出jwt而不是随机字符串。有人能给出一个示例实现或give关于我们如何做到这一点吗?

代码语言:javascript
复制
path('o/', include('oauth2_provider.urls', namespace='oauth2_provider')),

我不确定如何更改导入行中的视图以自定义它以允许jwt。

EN

回答 1

Stack Overflow用户

发布于 2019-02-20 09:53:50

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

安装添加到您的pip要求:

代码语言:javascript
复制
git+https://github.com/Humanitec/django-oauth-toolkit-jwt#egg=django-oauth-toolkit-jwt

生成密钥以生成具有SHA-256公钥和私钥的RS256 (RSA签名),执行以下操作:

代码语言:javascript
复制
$ ssh-keygen -t rsa -b 4096 -f jwtRS256.key # don't add passphrase
$ openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
$ cat jwtRS256.key
$ cat jwtRS256.key.pub

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

将oauth2_provider和oauth2_provider_jwt添加到INSTALLED_APPS中:

settings.py

代码语言:javascript
复制
INSTALLED_APPS = (
    ...
    'oauth2_provider',
    'oauth2_provider_jwt',
)

包括新的oauth URL:

urls.py

代码语言:javascript
复制
urlpatterns = [
    ...
    url(r'^oauth/', include('oauth2_provider_jwt.urls', namespace='oauth2_provider_jwt')),
]

将以下内容添加到中间件中:

settings.py

代码语言:javascript
复制
MIDDLEWARE = [
    ...
    'oauth2_provider.middleware.OAuth2TokenMiddleware',
]

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

settings.py

代码语言:javascript
复制
AUTHENTICATION_BACKENDS = (
    ...
    'oauth2_provider.backends.OAuth2Backend',
)

现在,我们需要在配置中设置一个JWT_ISSUER变量,它将是发行人的名称。获取我们之前生成的RSA256私钥,并将其存储在一个JWT_PRIVATE_KEY_RSA_变量*中。例如:

settings.py

代码语言:javascript
复制
JWT_ISSUER = 'OneIssuer'
JWT_PRIVATE_KEY_RSA_ONEISSUER = """
-----BEGIN RSA PRIVATE KEY-----
MIIBOAIBAAJAbCmbRUsLrsv0/Cq7DVDpUooPS1V2sr0EhTZAZmJhid2o/+ya/28m
...
6D0+csaGDlZ9GbrTpTJUObNENNHqfrHGfqzDxQ==
-----END RSA PRIVATE KEY-----
"""
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54623930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档