2

我正在为用户添加将其foursquare 帐户与他们在我的网站上的帐户相关联的功能。Foursquare 的 oauth 帐户授权将用户带到foursquare 的网站,并在授权我的网站后将用户重定向回一个url。

当他们决定将foursquare功能添加到他们的帐户时,我想避免在我的网站上破坏用户的上下文,所以我计划在新窗口中使用foursquare的帐户授权

var foursquare_popup = window.open("foursquare_url_to_authenticate_user");

并在授权完成后将弹出窗口重定向到静态成功页面。

我已经在Wired 的推文按钮等几个地方看到了 oauth 弹出窗口。

这是用 twitter/facebook/foursquare 之类的东西处理 oauth 的好方法吗?

4

2 回答 2

2

我建议不要在 oauth 登录过程中打开弹出窗口,纯粹是因为某些浏览器不支持弹出窗口——尤其是手机上的浏览器。此外,浏览器可能支持弹出窗口,但用户可能打开了弹出窗口阻止程序。

更好的方法是将用户从您的网站重定向到服务提供商,所有这些都在同一个窗口中。

我目前正在研究一种在我的网站页面上使用不可见 iframe 的方法。这样,如果用户已经登录到服务提供商,那么他们就不需要被引导离开我的网站。但是,我已完成此功能的一半,因此我无法确认它是否可以工作。

于 2012-08-16T00:42:42.043 回答
1

如果要使用弹出窗口,可以指定 display=webpopup(请参阅https://developer.foursquare.com/overview/auth#display)。

此外,您可以在回调 URL 中指定其他参数,这些参数将由 oauth 流程保留。因此,如果您将“&state=settings/accounts”或其他内容作为redirect_uri 的参数传递,您可以在成功时解析它并适当地恢复与用户的会话。

于 2012-08-16T19:53:20.333 回答