gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:08:50 29 4
gpt4 key购买 nike

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

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

我只看到设置小型服务器来跟踪我的用户 token 的繁重解决方案:

  1. 我的扩展检查 imgur token :如果找到,则启动扩展工作流,否则转到第 2 步。
  2. 我的扩展程序要求 imgur api 提供其身份验证表单。
  3. 用户填写表格,这是 self 管理的,表格将其用户名/密码发送回 imgur 服务器。
  4. Imgur 服务器向指定的“redirect-url”发送包含 token 的查询请求。
  5. 这个“重定向网址”是我的服务器网址,它会检索 token 。
  6. [不知道如何执行此步骤] 服务器和扩展程序交换,并且扩展程序至少检索到宝贵的 token 。
  7. 有了这个标记,扩展程序至少可以显示 imgur 图片。

他们的文档提到 localhost 作为可能的 url 重定向。我正在朝着这个总体方向进行挖掘,但它对我来说没有意义:这似乎更像是开发人员的本地测试,而不是我正在寻找的答案。

感谢任何输入。

最佳答案

在大多数情况下, token 会附加到重定向 url。所以你可以使用 chrome.tabs.onUpdated.addListener() 收听选项卡更新并检查选项卡 url 何时包含 "access_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);
}
}
});

您还需要 "tabs"允许它工作

编辑:您还可以使用 chrome.identity.launchWebAuthFlow() .你将不得不使用:

Javascript 起源: https://<extensionid>.chromiumapp.org

重定向网址: https://<extensionid>.chromiumapp.org/provider_cb

这是一个很好的例子 github-auth使用 chrome.identity.launchWebAuthFlow() 的应用程序.可以在扩展中使用相同的代码。

关于javascript - 我可以在 chrome 扩展中为 oauth2 回调设置什么重定向 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420459/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com