Javascript 我可以为chrome扩展中的oauth2回调设置什么重定向URL?

Javascript 我可以为chrome扩展中的oauth2回调设置什么重定向URL?,javascript,google-chrome-extension,oauth-2.0,imgur,Javascript,Google Chrome Extension,Oauth 2.0,Imgur,我想在chrome扩展中使用imgurapi。来自用户输入的身份验证响应被发送到imgur网页上我的应用程序配置文件中设置的“重定向url” 如何将“重定向url”设置为指向用户的chrome浏览器扩展 我只看到设置一个微型服务器来跟踪用户令牌的繁重解决方案: 我的扩展检查imgur令牌:如果找到,启动扩展工作流,否则转到步骤2 我的扩展向imgurapi请求其身份验证表单 用户填写自管理的表单,表单将其用户名/密码发送回imgur服务器 Imgur服务器将包含令牌的查询请求发送到指定的“重定向

我想在chrome扩展中使用imgurapi。来自用户输入的身份验证响应被发送到imgur网页上我的应用程序配置文件中设置的“重定向url”

如何将“重定向url”设置为指向用户的chrome浏览器扩展

我只看到设置一个微型服务器来跟踪用户令牌的繁重解决方案:

  • 我的扩展检查imgur令牌:如果找到,启动扩展工作流,否则转到步骤2
  • 我的扩展向imgurapi请求其身份验证表单
  • 用户填写自管理的表单,表单将其用户名/密码发送回imgur服务器
  • Imgur服务器将包含令牌的查询请求发送到指定的“重定向url”
  • 此“重定向url”是我的服务器url,它检索令牌
  • [不知道如何执行此步骤]服务器和扩展交换以及扩展至少检索珍贵的令牌
  • 有了这个标记,扩展至少可以显示imgur图片 他们的文档提到localhost是可能的url重定向。我在这个大方向上挖掘,但对我来说没有意义:它似乎更像是针对开发人员的本地测试,而不是我正在寻找的答案


    谢谢你的意见

    在大多数情况下,令牌被附加到重定向url。因此,您可以使用
    chrome.tabs.onUpdate.addListener()
    收听选项卡更新,并检查选项卡url何时包含
    “access\u token=“
    ”。现在,它将侦听每个选项卡。如果您自己创建身份验证选项卡,您将在其回调中获得一个id。使用此id,您可以在
    chrome.tabs.onUpdated.addListener()
    回调中检查它是否与您创建的选项卡相同,或者如果选项卡url与重定向url匹配,您就可以进行匹配。这两种方法都有效

    示例代码:

          chrome.tabs.onUpdated.addListener(function authorizationHook(tabId, changeInfo, tab) {
                    if (tabId === authenticationTabId && tab.title.indexOf(redirectUrl) >= 0) {
                        //If you don't have the authentication tab id remove that part 
                              if(tab.title.indexOf("access_token=") >=0){//tab url consists of access_token
                                var url = tab.title;
                                /* 
                                   Code to extract token from url
                                */
                                chrome.tabs.onUpdated.removeListener(authorizationHook);          
                              }                 
                    }
           });
    
    此外,您还需要
    “选项卡”
    权限才能使其工作

    编辑:您也可以使用。您必须使用:

    Javascript来源:
    https://.chromiumapp.org

    重定向url:
    https://.chromiumapp.org/provider_cb


    下面是一个使用
    chrome.identity.launchWebAuthFlow()
    的应用程序的好例子。同样的代码也可以在扩展中使用。

    Edit:wait,如何在第一次将回调重定向到我的选项卡?应该设置什么值来重定向Url?我回答了您在问题中提出的问题。您需要提供更多详细信息,如您正在使用弹出窗口或选项卡。您在问题中提到重定向uri是您的web服务器,所以请使用它。不,不,不。我问我应该使用什么Url重定向来将令牌返回到我的Chrome扩展选项卡、弹出窗口或任何最合适的位置。我看不出任何解决办法。因此,我考虑设置一个服务器来接收回调。但在这么做之前,我问社区是否有人知道如何接收对chrome扩展的OAuth2回调。对不起,英语不是我的第一语言。对于重定向uri,任何带有https://或http://协议的url都应该可以使用。我还编辑了我的答案,添加了另一个获取访问令牌的方法。这可能会对您有所帮助。Chrome页面遵循Chrome extension://协议,该协议对于重定向url无效。因此,chrome提供了一种以https形式提供扩展重定向url的方法://