繁体   English   中英

无法在后端获取从前端发送的 jwt 令牌

[英]Cannot get jwt tokens sent from frontend in backend

我是 Django 和 simplejwt 的新手,我遇到了一个问题。 令牌从我们的 Angular 前端以“app_token”和“access_token”的名称发送给我,但我找不到在我的 Django 代码中检索它们的方法。 我尝试过像“HTTP_APP_TOKEN”和“HTTP_ACCESS_TOKEN”这样的名称,甚至让我们的前端团队重命名令牌,但这也没有帮助。 有没有人有任何想法?

由于我还没有足够的声誉来添加评论,我想确定您是否使用nginx来转发您的请求。 如果是,也许关注答案会有所帮助,否则,请评论我删除。

默认情况下,Nginx 忽略带有下划线的标题。 这可以解释为什么您的标头属性(如app_tokenaccess_token )无法传递到后端。

1> 你可以在你的nginx 配置中设置underscores_in_headers

2> 使用不带下划线的标题preperty。

您可以从请求中获取令牌; 例如,您使用 IsAuthenticated 权限保护视图,并且您在视图中有一个方法名称

def get(self, request):
    token = request.headers['Authorization']
    # other code

如果您使用过 simplejwt,则令牌会像Bearer access_token一样从前端作为标头传递

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM