代码之家  ›  专栏  ›  技术社区  ›  Arielo

安全存储刷新令牌的位置

  •  2
  • Arielo  · 技术社区  · 7 年前

    where to store - access token and refresh token in OAuth 2.0 是我一直在寻找的答案,但我有一些不清楚的东西,或者我只是想得太多了。

    假设我有一个调用REST api并将刷新令牌作为HttpOnly cookie存储在浏览器中的网站X。如果一个恶意的人M进入其他人的计算机,而该计算机已经以U的身份登录到X中,M可以去寻找cookie并窃取刷新令牌。然后M将能够检索到他想要的U的所有令牌,他只需要该应用程序的客户端Id和客户端机密,他可以从该应用程序的任何其他用户那里获得,例如,他自己M只需要在进行get new access token调用时查看头的值。对吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Community CDub    3 年前

    您不应在浏览器中运行的应用程序中使用身份验证代码授权。这个 Implicit grant 专为此类应用而设计:

    • 要从刷新令牌获取访问令牌,需要向 /token 需要身份验证(客户端ID和客户端机密)且您无法在浏览器中保护机密的端点。
    • 这个 /代币 端点通常不支持CORS头-您无法通过JavaScript XHR调用访问它。
    • 要在原始访问令牌过期时获取新的访问令牌,可以使用 prompt=none /auth 请求参数。