【问题标题】:Securely storing Django REST API token in Chrome extension在 Chrome 扩展程序中安全地存储 Django REST API 令牌
【发布时间】:2017-08-15 07:11:33
【问题描述】:

我正在制作一个 Chrome 扩展程序,它应该允许用户在弹出界面中输入他们的用户名和密码,通过 AJAX 将它们发布到服务器,并接收一个 Django REST API 令牌,Chrome 扩展程序可以使用该令牌进行交互使用 Django 应用程序(获取用户信息、创建新记录等 - 所以它应该是安全的)。

现在我已经让 Chrome 扩展程序发出请求并接收 API 令牌,但我正在努力解决如何安全地存储 API 令牌。

我知道 chrome.storage 已失效,因为文档说它不安全。可以在这里使用cookies吗?扩展需要在多个域上运行,所以我不确定是否可以安全地使用 cookie。

我不想要求用户在每次使用 Chrome 时都登录,但我不确定如何存储 API 数据。

【问题讨论】:

    标签: javascript python django google-chrome google-chrome-extension


    【解决方案1】:

    你应该使用chrome.identity:

    开发人员可以利用 chrome.identity API 来存储用户凭据。 Chrome 扩展程序通常向外部资源发出 API 请求。最佳实践是存储 OAuth API 令牌。此类令牌可以在没有用户名/密码的情况下代表用户执行授权请求,并且可以由用户随时撤销。

    Chrome API 提供 chrome.identity 服务,该服务为扩展提供了一种安全的方式来验证、获取和刷新令牌。此 API 使用户能够针对第三方服务执行身份验证。 Chrome 可以交互地显示一个弹出式 UI,其中:

    这是official docs。

    【讨论】:

      【解决方案2】:

      Chrome 不允许扩展程序修改/处理 cookie。

      在documentation 中写道:“使用 Chrome 身份 API 来验证用户身份:getAuthToken 用于登录 Google 帐户的用户,launchWebAuthFlow 用于登录用户进入非 Google 帐户。如果您的应用使用自己的服务器对用户进行身份验证,则需要使用后者"

      您可以找到有关非 Google 帐户 here 的文档。

      您可以将令牌存储在只能由您的扩展程序访问的本地存储中,但请注意,它没有加密,可以通过 Chrome 的开发工具查看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-03
        • 2021-05-02
        • 2018-12-04
        • 1970-01-01
        • 2019-02-20
        • 1970-01-01
        • 2014-06-02
        • 1970-01-01
        相关资源
        最近更新 更多