在OmniAuth中具有不同的回调操作

时间:2011-09-10 08:31:21

标签: ruby-on-rails ruby-on-rails-3 callback omniauth facebook-graph-api

我在我的应用中使用Omniauth和Fb_graph宝石。

我想对其执行两项不同的操作:

1)使用Facebook注册 - >使用Omniauth我创建一个身份验证并重定向到root_path

2)找到Facebook好友 - >如果存在身份验证,请使用fb_graph查找朋友。如果它不存在,请在omniauth中创建身份验证,然后重定向到fb_friends_path

使用Omniauth进行身份验证后,如何才能有不同的回调? (在第一种情况下,我想重定向到root_path,在第二种情况下,如果它不存在,我想在创建身份验证后重定向到fb_friends_path。)

非常感谢!

1 个答案:

答案 0 :(得分:1)

假设您正在使用rails,请设置一个名为:auth_required的过滤器,该过滤器检查该用户过去是否具有设置授权 - 也许您正在存储oauth令牌,您可以检查它。 Place:auth_required在与fb_friends_path对应的操作之前。如果他们没有授权设置,请将用户的意图(他们想要的URL)存储在会话中。

在你为omniauth设置的回调中,如果有存储的意图重定向到它并将其删除。否则,假设他们正在注册并将其发送到根路径。