我正在开发一个基于@anywhere的网页上的Twitter应用程序。
我认为@anywhere是Facebook Javascript SDK的Twitter版本(也许这就是我错的地方)。
不管怎么说,事情是这样的。
你把“与Twitter连接”代码放在你的网页上,如果用户用Twitter登录并授权你的应用程序,那么你可以用它做任何你想做的事情。
因此,如果@user_a用他的Twitter账户登录并访问你的网站,你可以做一些奇特的事情,比如显示@user_a追随者或向他们的账户发推文或其他任何东西。
问题是这样发展的。假设@user_a已经登录了你的应用程序,然后@user_a退出了twitter (因为它是一台公共计算机:/),然后另一个人来了,以@user_b的身份登录到Twitter。如果@user_b转到你的@anywhere网页,it会看到一切,就好像@user_a已经登录了一样!D:
Twitter说,这一切都很好,因为一切都是基于cookie的,你应该提供一个按钮,让人们从@anywhere注销你的网站。对我来说,这听起来不切实际,因为如果你(用户)想要停止使用Twitter,你只要从网页上注销就行了(就像在Facebook上一样);你不应该记住,你已经连接到twitter的网站,并访问他们退出这些网站,只是为了保护自己免受其他人使用你的帐户。更糟糕的是,这块饼干很容易被偷走,接下来的故事你都知道了。
我做错了什么吗?我是否认为@anywhere API与它的预期有所不同?
发布于 2011-03-28 08:26:05
@anywhere不会将自己宣传为SSO,因此它不需要单点注销机制。我们的想法是使用@anywhere登录到其他站点,然后这些站点负责处理会话,包括何时注销用户。就像用户使用两个不同的密码登录到站点a和站点b一样,他们有责任对每个站点进行签名。
虽然@anywhere令牌处于活动状态可以允许后续用户使用,但这些令牌只在几个小时内处于活动状态,从而限制了潜在的损害。
https://stackoverflow.com/questions/5435163
复制相似问题