【发布时间】:2016-12-18 04:07:03
【问题描述】:
我一直试图了解会话和令牌身份验证之间的真正区别。
到目前为止我收集的内容:
在令牌认证中,服务器端没有存储任何内容。这意味着,实际的令牌包括密码和用户名,以及其他可能的信息。并且服务器只是解密令牌,然后检查用户名和密码是否正确。我说得对吗?如果令牌包含密码和用户名,那么令牌如何每次仍然不同?
在基于会话的身份验证中,会话令牌只是一个随机(在时间上唯一)id,它映射到服务器端的用户。这样当服务器接收到 session_id(例如在 cookie 中)时,它会检查它是否映射到任何用户,如果是,则用户通过身份验证。所以 session_id 不包含任何可以解密的用户相关信息?
在会话认证中,服务器将不加密(除非使用https)发回用户相关信息(不是密码)。
在token认证中,一旦解密,服务器不会直接发回用户信息,只会发回包含用户信息的token?
我感觉我还没有真正理解令牌和会话身份验证的工作原理。上面的陈述肯定有问题。
但是,让我们一起来看看这些陈述是正确的。那么基于会话的身份验证不是更安全吗?因为在基于会话的身份验证中,您不会泄露用户密码(例如在浏览器中)。由于它只是一个随机 ID,因此无法从中获取信息。但 Token 身份验证并非如此。由于令牌认证包含密码,如果有人设法解密它,他会得到你的密码。那么会话身份验证实际上是否比令牌身份验证更安全,因为它不会泄露密码或用户名信息?
【问题讨论】:
标签: security session authentication login token