JavaScript/jQuery中的安全Twitter OAuth身份验证(以及服务器端帮助程序)

Roc*_*uts 6 javascript twitter jquery oauth

在JavaScript中安全地进行Twitter OAuth身份验证的最佳方法是什么?

我正在尝试编写一个程序,让用户分析他的Twitter使用情况和关注者/朋友.我写了一个服务器端版本,使用python tweepy模块工作.

我想与人分享,但我希望它能够在浏览器中运行,以便在我的小型服务器上运行.

我看到另一个问题,结果是它不推荐而且不安全: JavaScript OAuth用Twitter登录

如果有人在应用程序的JavaScript中发送消费者(app)秘密或访问(用户)秘密,这是有道理的.

但为什么我不能像这里一样在服务器端构建URL - http://djangosnippets.org/snippets/1353/

然后将身份验证URL发送回浏览器,类似于Twitter的"我的应用程序"页面上的OAuth工具(无效凭据)

GET和HTTPS%3A%2F%2Fapi.twitter.com%2F1%2F&拿到%252Faccount%252Fverify_credentials_json%3D%26oauth_consumer_key%GD0bgcgMU4MDwNfKQpLFQS3%26oauth_nonce%3D24ad5049501dee1292afd8cf22307d68%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1329173626%26oauth_token%uPUpxsBc3D283768289LtQ6R1Ez1KeD8DOSsm5XpqJaKI28ysYh%26oauth_version%3D1.0

然后让jQuery使用它来验证用户的凭据并运行分析.

这是一项重要的工作,我不愿意这样做,然后发现它不起作用或者是一种不安全的方法.(或者它已经完成)

这样安全吗?它似乎没有暴露任何秘密.

那会有用吗?

正确的方式为jQuery noob进行身份验证的任何指针/示例,以及必要的Authorization:header和cookie/redirect处理?

我觉得我错过了一些东西,或者有一个理由不起作用,或者它应该已经存在于某个地方,但还没有找到它.非常感谢!

Ala*_*lan 3

McNuts 先生的问题是,oAuth 要求您传递您的消费者秘密,因此即使您在服务器上构建 URL,您仍然会将其传回网页,这仍然会通过以下方式暴露您的消费者秘密: HTTP 代理。

为了防止泄露您的秘密,您需要使用代理来执行 twitter 身份验证请求,并将 oauth 令牌返回给浏览器。如果您真的担心规模,我会考虑按规模付费的解决方案,例如 GAE 或 Heroku。