在 Django REST 框架中使用 JWT 时,刷新令牌和访问令牌存储在哪里?
Posted
技术标签:
【中文标题】在 Django REST 框架中使用 JWT 时,刷新令牌和访问令牌存储在哪里?【英文标题】:Where the refresh token and access token are stored while using JWT in Django rest framework? 【发布时间】:2021-01-23 08:32:24 【问题描述】:我正在尝试使用 djangorestframework-simplejwt 为我的 Django REST 应用程序实现 JWT。我注意到刷新令牌和访问令牌没有存储在数据库中。那么它们存放在哪里呢?
提前致谢。
【问题讨论】:
jwt.io/introduction 【参考方案1】:这就是 JWT 的重点,它们不需要服务器端存储。所有信息都被烘焙到令牌本身中,它是签名的,只有服务器拥有的秘密(应该有,如果你在没有安全漏洞的情况下正确执行)。服务器读取 JWT 中的信息并确认它已使用秘密签名,只有它自己应该拥有。如果成功,它将信任 JWT 中包含的信息。因此它不需要在任何数据库中查找任何内容。
【讨论】:
好的,非常感谢。我明白了。令牌只是在有效载荷中以其到期日期旅行。谢谢,我之前没有考虑过。你能告诉我如何在 django rest 框架中获取有效负载数据吗?因为我还想从存储的有效负载 user_id 中验证用户。 djangorestframework-simplejwt 已深度集成到 Django 中,用户只需进行身份验证,如果他们进行身份验证,则可以作为请求的常规.user
属性访问。用户通过 JWT 进行身份验证的事实大部分是透明的。如果您想深入了解此过程,则需要更详细。以上是关于在 Django REST 框架中使用 JWT 时,刷新令牌和访问令牌存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
Django REST 框架、JWT 和 request.session
django rest框架使用jwt RS256解码签名错误
如何从 django rest 框架访问 jwt 令牌到 Angular 前端