我想在Chrome扩展程序中使用Imgur API。来自用户输入的验证响应被发送到"重定向URL"在我的应用程序配置文件中设置imgur网页。
如何设置"重定向网址"指向用户的chrome浏览器扩展?
我只看到设置一个小服务器的重要解决方案来跟踪我的用户'代币:
他们的文档提到localhost是一个可能的url重定向。我正在挖掘这个大方向,但它对我没有意义:似乎更像是对开发人员的本地测试而不是我正在寻找的答案。
感谢您的任何意见。
答案 0 :(得分:3)
在大多数情况下,令牌会附加到重定向网址。因此,您可以使用chrome.tabs.onUpdated.addListener()
收听标签更新,并检查标签网址何时包含"access_token="
。现在它将收听每个标签。如果您自己创建身份验证选项卡,则会在其回调中获得一个ID。使用此ID,您可以在chrome.tabs.onUpdated.addListener()
内部检查它是否与您创建的标签相同,或者如果标签网址与重定向网址匹配,您可以匹配。两者都有效。
示例代码:
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
以下是使用chrome.identity.launchWebAuthFlow()
的{{3}}应用的一个很好的示例。可以在扩展中使用相同的代码。