Foursquare授权,不会丢失网站上下文

时间:2012-08-15 20:34:08

标签: api oauth foursquare

我正在添加用户将其foursquare帐户与我们网站上的帐户相关联的功能。 Foursquare的oauth帐户授权将用户带到foursquare的网站,在授权我的网站后,它会将用户重定向回网址。

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

进行foursquare的帐户授权

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

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

我看过oauth popups在Wired's推文按钮等几个地方完成。

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

2 个答案:

答案 0 :(得分:2)

我建议不要打开弹出窗口作为oauth登录过程的一部分,纯粹是因为某些浏览器不支持弹出窗口 - 特别是手机上的浏览器。此外,浏览器可能支持弹出窗口,但用户可能已打开弹出窗口阻止程序。

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

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

答案 1 :(得分:1)

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

此外,您可以在回调URL中指定其他参数,这些参数将由oauth流保留。所以如果你通过"& state = settings / accounts"或者作为redirect_uri参数的东西,你可以在成功时解析出来并适当地恢复你的会话。