【问题标题】:chrome extension needs offline access from server sidechrome 扩展需要从服务器端离线访问
【发布时间】:2016-08-09 05:04:36
【问题描述】:

我正在构建一个 chrome 扩展。我使用chrome.identity.getAuthToken 来获取access_token。这为我提供了客户端(浏览器)的 access_token。现在我想将此 access_token 传递给我的服务器。我想离线访问授予的 API,我知道为此我必须将它与 long-live-token 和 refresh token 进行交换。有没有一种安全的方式将 access_token 传递给服务器?还是我应该使用http post?

另一种方法是将用户重定向到服务器以使两者都流在那里。

最佳和最安全的做法是什么?

【问题讨论】:

    标签: google-chrome-extension oauth-2.0 google-oauth


    【解决方案1】:

    我认为服务器端流程最好使用authorization_code流程获取refresh_token。

    使用客户端流程,您无法请求刷新令牌,Google 将拒绝该请求并显示消息 access_type offline, not allowed for response type token

    一旦您在服务器中安全地获得访问令牌和刷新令牌,您就可以将其发送到 chrome 扩展程序,因此扩展程序不必在维护令牌时执行任何额外的过程,一旦令牌过期,您可以向服务器请求新的访问令牌,然后服务器将使用刷新令牌刷新访问令牌并发送回扩展

    【讨论】:

    • 谢谢@Ramesh,如果我把它放在Javascript代码中,我的服务器IP不会对所有人开放吗?这种情况如何处理?
    • 它是域,所以它可以是可见的,无论你以一种或另一种方式与你的服务器通信,所以要考虑的正确问题是,如何安全地与它通信
    • 我认为你是对的。任何安全通信的指针?因此,如果用户直接点击域,他将进入 oauth 流程。这正常吗?
    • 是的,由于重定向发生在扩展程序中,在获取令牌后,您可以使用 cookie 或页面注入或其他形式将数据发送回扩展程序并进行进一步通信,您可以使用访问通过api访问数据的token
    猜你喜欢
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2013-12-08
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2019-03-20
    相关资源
    最近更新 更多