需要一些有关 REST API 的 JWT 身份验证的信息

Posted

技术标签:

【中文标题】需要一些有关 REST API 的 JWT 身份验证的信息【英文标题】:Need some info about JWT Authentication for REST APIs 【发布时间】:2020-10-17 20:46:14 【问题描述】:

我需要保护我的 REST API,因为我在一个简单的 REST API 上使用了 JWT 身份验证。完成 JWT 身份验证后,我需要回答一些问题,如果有人可以在这里帮助我,那就太好了。以下是问题:

    基于令牌的身份验证如何比基本身份验证更安全? token有效性检查的标准是什么? JWT 生成令牌的算法是什么? 在哪里/如何比较/验证令牌?

【问题讨论】:

jwt.io/introduction 是一个很好的起点 【参考方案1】:
    对于问题 1:两者都不安全。事实上,两者都同样容易受到攻击(请对此进行更多研究)。 jwt 的优点是您可以将授权证明存储在客户端上(是的,它由您的密钥签名是安全的)。但在会话的情况下,它们会占用服务器空间。 对于问题 2:有效性的过程取决于实施。您可以为令牌定义到期时间,并在令牌到期后使会话无效,或者您可以使用刷新令牌来发出新令牌。验证过程涉及使用您的密钥(在将令牌发布给客户端之前对其进行签名)对令牌进行解码。 对于问题3:编码中涉及的通用算法是base64,而签名中涉及的通用算法是带有密钥的HS256。其他算法也用于不同的实现。 对于问题 4:客户端应将每个受保护请求的令牌添加到服务器(说明客户端的授权)。服务器中的初始过程将是验证令牌并查找发送请求的人。所以验证过程是在服务器端完成的。

最后,您必须记住的是,jwt 是授权证明,对于身份验证,您可以使用基于用户名密码的安全性,通过该安全性您可以发出授权令牌。

【讨论】:

以上是关于需要一些有关 REST API 的 JWT 身份验证的信息的主要内容,如果未能解决你的问题,请参考以下文章

用于重定向到 REST api 中的身份验证的适当 HTTP 状态

使用 otp 获取 api 令牌的 Django REST 框架的 JWT 身份验证

REST API 错误返回良好做法 [关闭]

带有 jwt 身份验证的 django rest api 要求 csrf 令牌

使用 Django Rest 框架进行 JWT 令牌身份验证

如何在 vue 中存储、管理 REST API JWT 身份验证令牌?