技术栈Django1.10.8 + Python3.6 + docker + React + Axios.js
我有一个情况,我需要进行服务器到服务器的调用,为此我使用Django-OAuth-toolkit。我如何将此令牌转换为颁发JWT令牌?
{“access_token”:“txxxxxxxxxxxxxxxxxxxxxFB45a”,“expires_in”:36000,“token_type”:“承载者”、“作用域”:“读写组”,“refresh_token”:“16oKxxxxxxxxxxxxxxxxxxxxx”}
到
{“access_token”:“xxxxxxxx.xxxxxx. xxxx”,“expires_in”:36000,“token_type”:“承载者”、“作用域”:“读写组”,“refresh_token”:“xxxxxxxx.xxxxxx.xxxxx”}
我已经通过了https://github.com/Humanitec/django-oauth-toolkit-jwt/,但我认为我使用的django-oauth-toolkit版本不兼容。
2条答案
按热度按时间0x6upsns1#
我通过子类化
oauthlib.oauth2.Server
解决了这个问题custom_token_generator
函数将生成jwt令牌这不是理想的JWT,但你可以做你需要的,唯一的问题是将AccessToken和RefreshToken
token
字段更改为TextField,因为JWT长度将超过限制django-oauth-toolkit docs将有更多关于覆盖django设置中这些字段的信息
jaql4c8m2#
因此,我还设法创建了一个自定义的JWT生成器,它分配JWT令牌而不是随机字符串令牌。您可以通过将以下内容添加到设置中来实现:
现在的问题是,每当我尝试将该令牌用于受保护的资源/视图时,JWT令牌都不起作用。我已经尝试过使用随机访问令牌,它工作得很好。这不起作用:
这样做效果很好:
有人能帮忙吗?