我正在尝试开发一个Chrome扩展程序,人们可以使用他们的Twitter帐户登录(使用OAuth 1.0A)。
到目前为止,我还没有在Twitter应用程序设置中提供回调URL,因此返回用户输入的PIN以完成授权过程。但我不想在扩展程序中实施最终的PIN验证步骤。
相反,我希望一旦用户被重定向到Twitter并授权应用程序访问他的帐户,他就会自动登录到扩展程序并可以使用它来发布推文。
我知道我应该定义一个回调网址,但我不知道该使用什么。我已经苦苦挣扎了几天,在此期间我尝试了多种方法(例如chrome:// extensions / extension_id /但它不被Twitter接受)。我没有找到解决方案。
关于什么应该是回调网址的任何想法?什么应该包含该URL指向的文件?
答案 0 :(得分:0)
我知道这是非常古老的,但我遇到了同样的问题,并最终想出了如何做到这一点,所以希望这有助于其他找到这个的人。
在您的Twitter应用配置中,您必须向域添加回调URL。然后,在Chrome扩展程序中,您必须拥有一个在同一个域上注入的内容脚本。内容脚本将具有一些逻辑,用于解析身份验证令牌的查询字符串,并将其作为消息发送到后台脚本。然后,在后台脚本中,您可以使用这些令牌获取实际的oauth令牌,然后将其保存到本地存储或chrome.storage。
这是一个简短的例子:
,请确保您的内容脚本与您在Twitter应用设置回调网址中放置的域相同:
"content_scripts": [{
"matches": ["https://andyjiang.com/*"],
"js": ["js/session.js"]
}]
然后,在您的js/session.js
文件中,有这样的逻辑:
chrome.runtime.sendMessage({type: 'auth', session:
window.location.search.substr(1)}, function(response) {
window.open('', '_self', '');
window.close();
});
在后台脚本中,有一些逻辑可以侦听消息,获取令牌,并使用Twitter的API进行oauth进程的第三站,最终获得oauth令牌和oauth令牌秘密,然后您可以将其保存在localStorage或chrome.storage中。
希望有所帮助。以下是示例代码,如果您想要使用它。
https://github.com/lambtron/chrome-extension-twitter-oauth-example