使用Twitter凭据作为站点凭据的最佳实践

时间:2015-02-23 03:30:24

标签: authentication twitter oauth

任务很简单。我想使用登录Twitter作为用户的凭据,允许他们访问网站的受限区域并将其操作与其帐户相关联。

我可以通过Twitter签名。我找回了id,用户名,oauth令牌,秘密令牌......

现在让我们说用户然后进行特定于网站的操作,例如对调查进行投票。我想将投票归因于他们的帐户。

我应该向服务器发送什么来证明投票来自Twitter用户?它说它是什么?

例如,发回推特ID和投票是否足够? 其他人可以获得此ID,然后开始代表用户进行投票吗?

我应该将twitter id,oauth令牌和秘密令牌发送到我的服务器吗? 同样,我如何验证这些凭据是否有效?在每个特定于站点的操作之后,服务器是否需要向twitter发出呼叫以验证这些凭据?这似乎过分了。

我是否让服务器验证一次凭据并发回一些随机会话密钥,然后在每次请求剩余会话后验证会话密钥?

这种事情已在数千个网站上实施,所以只是想知道常识解决方案是什么。对不起,如果之前已经问过这个问题。在这种情况下,将非常感谢对答案的引用。

另外,我在node.js上并使用hello.js,以防特定于堆栈的解决方案

由于

1 个答案:

答案 0 :(得分:0)

你的会话密钥的想法很好。它将保证进一步请求(例如投票)和Twitter用户ID之间的关联。唯一的问题是,如果有一个中间人,那么他们捕获会话密钥并可以重播请求。这可以通过使用HTTPS来解决,它可以保证没有人与传入请求混淆,从而保证与用户的关联。由于会话密钥是短暂的,因此它们不可能在未来的攻击中使用。