Rails 3-通过OmniAuth进行设计-登录后重定向到/ users / sign_in
|
我使用omniauth与devise一起使用Facebook登录用户。我希望他们在登录后可以重定向到登录后的页面。
我用过
def after_sign_in_path_for(resource_or_scope)
store_location = session[:return_to]
clear_stored_location
(store_location.nil?) ? \"/\" : store_location.to_s
end
在我的应用程序控制器中,并使用此代码进行了一个session_helper
def deny_access
store_location
redirect_to new_user_session_path
end
def anyone_signed_in?
!current_user.nil?
end
private
def store_location
session[:return_to] = request.fullpath
end
def clear_stored_location
session[:return_to] = nil
end
并解决了重定向到\“ services / \”的问题,在这里我有使用facebook和其他平台进行身份验证的逻辑,
skip_before_filter :store_location
在服务和其他控制器中,我不会将其存储为位置。
Q1我现在遇到的问题是,当我使用ajax并在模式窗口中呈现登录表单时,当用户成功登录时,它将重定向到/ users / sign_in /。我没有用户控制器,试图创建一个sessions_controller.rb,并在此处添加了skip_before ...,但它不起作用。
这是我登录的路线
new_user_session GET /users/sign_in(.:format) {:action=>\"new\", :controller=>\"devise/sessions\"}
user_session POST /users/sign_in(.:format) {:action=>\"create\", :controller=>\"devise/sessions\"}
destroy_user_session GET /users/sign_out(.:format) {:action=>\"destroy\", :controller=>\"devise/sessions\"}
问题2,我尝试在用户退出时使用重定向
def after_sign_out_path_for(resource_or_scope)
(session[:return_to].nil?) ? \"/\" : session[:return_to].to_s
end
但这只会将我重定向到根页面。
我真的很感谢任何帮助,
没有找到相关结果
已邀请:
3 个回复
犁攀富
械怒等
(详细信息可以在此处找到)?您还可以获得
。 Q2。请尝试检查
-最有可能是
。
肉簧咸缮
经过Facebook身份验证后,ѭ11中将提供此参数。