【问题标题】:Is it a good practice to store token in browser sessionStorage?将令牌存储在浏览器 sessionStorage 中是一种好习惯吗?
【发布时间】:2021-10-03 20:48:59
【问题描述】:

提供客户端存储选项的浏览器哪个更好?

【问题讨论】:

    标签: angular oauth-2.0 keycloak pkce angular-oauth2-oidc


    【解决方案1】:

    在本地存储中存储访问令牌取决于您的应用程序的可见性。它是面向公众的 Web 应用程序还是内部组织的 Web 应用程序?

    如果是面向公众的 Web 应用程序,则访问令牌至少应具有较短的有效期。这是为了尽量减少共享同一台计算机的其他用户访问活动会话的可能性。

    或者,您可以使用 sessionStorage(请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

    在浏览器窗口或浏览器选项卡关闭之前一直保存该值。这比使用 localStorage 稍微好一点(参见https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

    除了使用浏览器本地或会话存储之外,您还可以实现自己的后端会话管理服务或使用基于云的会话存储提供程序(例如 Auth0 或 Okta)为您处理存储。这样您就不必担心浏览器存储令牌的会话劫持。建议将其用于高使用率、高可见度的面向公众的 Web 应用程序。

    当用户通过身份验证时,当您从身份服务器获取访问令牌时,可以读取用户详细信息。这样您就不必执行额外的请求来获取其他用户详细信息。

    【讨论】:

    • 是 Auth0 还是 Okta 存储会话提供者? (auth0.com/docs/security/data-security/…)
    • 是的。两者都是基于云的身份验证和授权提供商。
    • 正确。两者都是基于云的身份验证和授权提供商,但您的答案将它们命名为“第三方会话存储提供商”,这是正确的术语。
    • 对供应商进行了轻微修正。
    • 在基于 Web 的应用程序中使用 cookie auth+csrf 保护有什么问题?基于令牌的身份验证适用于桌面/移动应用
    猜你喜欢
    • 2015-06-23
    • 2020-05-27
    • 2019-03-24
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2022-09-30
    相关资源
    最近更新 更多