0

我正在阅读/学习基于令牌的身份验证,并且我在一定程度上理解它,但出现了以下问题。

如果您登录站点 A,您将获得一个令牌,该令牌将在创建后 24 小时过期。

您还访问了站点 B,它从站点 A 调用 API,允许您授予站点 B 访问您存储在站点 A 上的信息的权限。此时,一个令牌被传递到站点 B 以供 24 小时使用。

这是同一个令牌吗?(因此,如果您通过站点 B 登录站点 A,则在直接登录站点 A 后 23 小时 59 分钟后,您在需要新令牌之前只能通过站点 B 访问您的信息一分钟?)

如果它不是同一个令牌,并且您将令牌存储在将其链接到用户的表中,那么每个用户会有多个令牌吗?

将您的令牌生成为随机唯一生成的代码并将其与用户登录详细信息一起存储在数据库中是否明智,或者创建一个结合登录详细信息并对其进行加密的令牌是否更好(如果是这样,您如何每次更改令牌)。

4

1 回答 1

1

这是同一个令牌吗?

好吧,这取决于站点 A。使用相同的令牌意味着站点 B 可以访问您在站点 A 上的登录允许您访问的所有内容。如果这看起来不合适,那么站点 A 将生成一个具有更有限访问权限的新令牌。在这种情况下,每个用户将有多个令牌。


因此,如果您通过站点 B 登录站点 A,则在直接登录站点 A 后 23 小时 59 分钟,您在需要新令牌之前只能通过站点 B 访问您的信息一分钟?

如果它在创建后 24 小时过期(您提到过),那么是的。通常,每次访问时都会更新到期时间,因此这可能会再续订 24 小时。


就个人而言,我会(并且已经)将令牌生成为随机唯一生成的代码。我认为两者都可以,而且我相信您可以在那里找到很多意见,例如 此处此处

于 2013-11-08T16:43:31.110 回答