因此,我创建了一个由 JWT 保护的小笔记应用程序(用户登录,接收一个令牌,然后用于在对 api 的每个请求时对用户进行身份验证)
为了允许访问外部应用程序,我尝试了 API 令牌的概念,例如 gitlab 是如何做到的。
如果您有 gitlab 帐户,则可以生成一个秘密令牌。有了这个令牌,外部应用程序现在可以在 gitlab api 上执行操作。
我认为到目前为止我已经理解了基本概念
我实现了允许用户生成令牌的功能。为该令牌生成哈希并存储在数据库中。然后(未散列的)令牌返回给用户。
现在是让我头疼的部分:
由于令牌不包含任何帐户信息(它只是一个随机字符串),检查 api-token 的端点如何将该令牌与帐户相关联?
当然,我可以简单地遍历每个帐户的所有存储的 api 令牌并进行第一个匹配(请记住,我对令牌进行了哈希处理,这意味着我无法进行简单的查找)。但我不会对这种方法感到很舒服。
我想到的第二个想法是使用 jwt 作为包含用户信息的 api 令牌。 imo,令牌有点太长了,我不确定这是否会为该用例公开太多信息,从而导致安全问题。
我觉得我在这里遗漏了一个细节,希望有人能引导我走向正确的方向。