Authentication 将twitter凭据用作站点凭据的最佳实践

Authentication 将twitter凭据用作站点凭据的最佳实践,authentication,twitter,oauth,Authentication,Twitter,Oauth,任务很简单。我想使用登录Twitter作为用户的凭据,允许他们访问站点的受限区域,并将其操作与帐户关联 我可以通过Twitter登录他们。我得到一个id,用户名,oauth令牌,秘密令牌 现在让我们假设用户然后进行特定于站点的操作,比如在调查中投票。我想把投票归于他们的账户 我应该向服务器发送什么来证明投票来自它所说的twitter用户 例如,发送回twitter id和投票就足够了吗? 其他人是否可以获得此id,然后开始代表用户进行投票 我应该向我的服务器发送twitter id、oauth令

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

我可以通过Twitter登录他们。我得到一个id,用户名,oauth令牌,秘密令牌

现在让我们假设用户然后进行特定于站点的操作,比如在调查中投票。我想把投票归于他们的账户

我应该向服务器发送什么来证明投票来自它所说的twitter用户

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

我应该向我的服务器发送twitter id、oauth令牌和秘密令牌吗? 同样,如何验证这些凭据是否有效?服务器是否需要在每次特定于站点的操作后调用twitter来验证这些凭据?这似乎太过分了

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

这类事情已经在数千个站点上实现,所以我想知道常识解决方案是什么。对不起,如果以前有人问过这个问题。在这种情况下,如能提及答复,将不胜感激

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


谢谢

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

我所提出的会话密钥解决方案的唯一问题是,它会导致两个令牌验证,一个是在用户使用Twitter登录时在客户端,另一个是在服务器端生成随机会话密钥。想知道是否有更有效的wayWell,OAuth已经是一个多步骤的过程,因此与增加的安全性相比,这个额外步骤的成本实际上可以忽略不计。不幸的是,一些社交网络对我可以进行多少令牌验证有限制。e、 g.推特限制每15分钟15次,因此这不会在生产站点上扩展。我意识到我的假设存在固有的问题。hello.js允许我在第三方代理服务器的帮助下在前端执行所有身份验证。因为我的服务器从未看到令牌交换,所以它依赖于客户机来告诉它它已通过身份验证,这就是我对这种方法感兴趣的地方。相反,我最终使用了passport.js,它是后端身份验证