我有博客应用程序,用户可以在博客上发表评论,如果已登录与facebook联系,我使用omniaut-facebook gem。
我在任何localhost:3000/blogs/:permalink
localhost:3000/blogs/rails
上的w / facebook连接并成功呈现localhost:3000/blogs/rails
时,如何呈现current_page
class User::SessionsController < ApplicationController
def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
render "localhost:3000/blogs/:permalink"
end
end
我该怎么办? 请帮帮我..
感谢已关闭我的问题..
确定问题已解决
origin = request.env['omniauth.origin']
redirect_to "#{origin}"
答案 0 :(得分:2)
首先,您需要添加一些路径来处理OmniAuth使用的路径。
<强> /config/routes.rb 强>
match 'auth/:provider/callback', to: 'users/sessions#create'
match 'auth/failure', to: redirect('/')
match 'signout', to: 'users/sessions#destroy', as: 'signout'
当Facebook现在重定向回您的应用程序时,它将在SessionsController中查找创建操作。
<强> /app/controllers/user/sessions_controller.rb 强>
class User::SessionsController < ApplicationController
def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
end
end