【问题标题】:Instagram doesn't use jwt on it's authenticationInstagram 不使用 jwt 进行身份验证
【发布时间】:2017-01-21 20:15:27
【问题描述】:

instagram 的身份验证系统中似乎没有使用jwt(Json Web 令牌)。

如您所知,jwt 是一种更安全的用户身份验证方式,而不是基于会话的系统。在jwt 中,令牌存储在数据库中,对于每个请求,我们在localStorage 中发送令牌以用于验证。因此,如果您从一个帐户(例如 chrome 中的 ex)注销,您必须在其他平台(如 android 应用等)中注销。

但在 instagram 中不会发生这种情况。这是否意味着 instagram 不使用基于令牌的身份验证?或者我无法理解。

【问题讨论】:

    标签: authentication token jwt


    【解决方案1】:

    代币可以分为两类:

    • 引用标记:标记只是一个(随机)字符串,相关数据存储在数据库中
    • Token by value:令牌本身包含所有数据。令牌经过数字签名,可能会为了保密而加密。

    JWT 属于第二类。可能的优点是它们避免了数据库调用,并且由于它们的生命周期很短,因此无需执行清理。

    尽管如此,说 JWT 比其他代币更安全是不正确的。 在服务器和客户端之间交换令牌时,主要的安全漏洞来自该令牌在发出时或针对每个请求的传输,而不是来自令牌本身。

    因此,如果您从一个帐户(例如 chrome 中的 ex)注销,您必须在其他平台(例如 android 应用程序等)中注销。

    这种特性主要取决于服务器策略。 例如,当用户从浏览器注销时,他可能需要登录其应用程序。

    如果您希望用户在每个客户端上注销,则服务器必须提供带有注销系统的会话管理,例如 OpenID Connect 规范中描述的那些

    【讨论】:

    • 很好的描述。非常感谢:) 但是我还是没有得到答案。当我们注销时,令牌将从数据库中删除,但我们仍然可以在其他设备上登录。
    • 我通过添加与注销问题相关的新部分来更新我的答案。
    • 啊,是的。像电报这样的主要思想。您可以销毁与特定平台相关的每个会话。非常感谢。
    猜你喜欢
    • 2016-04-07
    • 2023-03-27
    • 2021-05-29
    • 2017-07-30
    • 2018-06-30
    • 2018-08-03
    • 2021-02-06
    • 2022-12-03
    • 2015-06-29
    相关资源
    最近更新 更多