Twitter OAuth回调URL用于Chrome扩展程序。

5
我正在开发一个Chrome扩展程序,用户可以使用Twitter账号登录(使用OAuth 1.0A)。目前在Twitter应用设置中还没有提供回调URL,因此用户会收到一个PIN码,需要在扩展程序中输入以完成授权流程。但我不想在扩展程序中实现最后的PIN码验证步骤。
相反,我希望一旦用户被重定向到Twitter并授权应用程序访问其帐户,他就会自动登录扩展程序,并可以使用它来发布推文。
我知道我应该定义一个回调URL,但我不知道该用什么。在过去的几天里,我一直在努力寻找解决方案(例如chrome://extensions/extension_id/,但Twitter不接受它)。我找不到解决方法。
您有任何关于回调URL的想法吗?指向该URL的文件应包含什么?
1个回答

1

我知道这已经非常老了,但我遇到了同样的问题,最终找到了解决方法,希望这能帮助其他人。

在您的 Twitter 应用程序配置中,您必须添加回调 URL 到一个域。然后,在您的 Chrome 扩展中,您必须有一个内容脚本,该脚本被注入到相同的域中。内容脚本将具有一些逻辑,将解析授权令牌的查询字符串,并将其作为消息发送到您的后台脚本。然后,在您的后台脚本中,您可以使用这些令牌获取实际的 OAuth 令牌,然后将其保存到本地存储或 Chrome 存储中。

这里是一个简短的示例:

  1. 在你的 manifest.json 文件中,确保你的内容脚本与你在 Twitter 应用设置回调 URL 中放置的相同域名匹配:

    "content_scripts": [{
        "matches": ["https://andyjiang.com/*"],
        "js": ["js/session.js"]
    }]
    
  2. 然后,在你的 js/session.js 文件中,使用以下逻辑:

    chrome.runtime.sendMessage({type: 'auth', session: 
    window.location.search.substr(1)}, function(response) {
        window.open('', '_self', '');
        window.close();
    });
    
  3. 在你的后台脚本中,编写一些逻辑来监听消息、获取令牌,并使用 Twitter 的 API 进行第三步 oauth 过程,最终获取 oauth 令牌和 oauth 令牌密钥,然后可以将其保存在 localStorage 或 chrome.storage 中。

希望有所帮助。如果你想尝试一下,这里是示例代码。

https://github.com/lambtron/chrome-extension-twitter-oauth-example


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接