Rails 3:在外部链接上的before_filter

时间:2011-11-04 14:00:18

标签: ruby-on-rails omniauth before-filter

我不知道我是否正确思考。

在我的rails应用程序中,我使用了Omniauth的facebook身份验证。

我有2个不同的链接“登录”(它们都以auth / facebook为目标,带有回调身份验证/创建)。一个应该重定向到用户配置文件(用户/显示),另一个应该重定向到帖子创建(发布/新)。

我认为这样做的好方法是在用户点击其中一个“登录”链接时存储路径(users / show)或(posts / new),然后在身份验证时重定向到此路径/ create方法。我在“auth / facebook”上考虑过before_filter。

但是auth / facebook是facebook的外部链接,而不是常规操作。那我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

我可能会尝试在auth / facebook中的会话中存储“final_destination”变量。

session[:final_destination] = params[:final_destination]
...
omniauth_does_its_thing
...

您必须将其存储在变量中,因为authentications / create可能会使用会话来登录。

final_destination = session[:final_destination]

在创建的操作结束后:

redirect_to final_destination

redirect_to final_destination_2 if sequels.enjoy?