Ruby on rails 3 设计的自定义登录
现在我正在使用Ruby on rails 3 设计的自定义登录,ruby-on-rails-3,devise,Ruby On Rails 3,Devise,现在我正在使用designegem,成功授权后,它会将用户重定向到根页面 如何在操作中修改签名以返回json数组,如下所示:{“auth\u result”:“1”}而不是重定向 可能吗? 我还没有在Deviate wiki中找到这些方法。Deviate目前不处理JSON响应-请参阅。因此,您必须创建一个自定义会话控制器来处理您的响应。看一看图片,想一想。我编写了一些粗略的伪代码,希望能帮助您开始: class Users::SessionsController < Devise::Ses
designe
gem,成功授权后,它会将用户重定向到根页面
如何在操作中修改签名以返回json数组,如下所示:{“auth\u result”:“1”}
而不是重定向
可能吗?
我还没有在Deviate wiki中找到这些方法。Deviate目前不处理JSON响应-请参阅。因此,您必须创建一个自定义会话控制器来处理您的响应。看一看图片,想一想。我编写了一些粗略的伪代码,希望能帮助您开始:
class Users::SessionsController < Devise::SessionsController
def create
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
set_flash_message :notice, :signed_in
# Remove sign_in_and_redirect(resource_name, resource) and replace with the following, I think
sign_in(resource_name, resource)
respond_to do |format|
format.json { render :json => hash_of_things_to_return.to_json }
end
end
end
class用户::sessioncontrollerresource_name,:recall=>“#{controller_path}#new”)
设置\u闪存\u消息:通知,:已登录
#删除sign_in_和重定向(resource_name,resource)并替换为以下内容,我认为
登录(资源名称、资源)
回应待办事项|格式|
format.json{render:json=>hash_of_things_to_return.to_json}
结束
结束
结束
然后,在routes.rb文件中,您必须指定新的控制器-design\u for:users,:controllers=>{:sessions=>“users/sessions”}
希望这有帮助 谢谢你的回答!我已经成功地切换到我自己的身份验证代码,我感到很高兴;)