Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 简单的Authlogic问题:JSON登录?_Ruby On Rails_Ruby_Json_Authlogic - Fatal编程技术网

Ruby on rails 简单的Authlogic问题:JSON登录?

Ruby on rails 简单的Authlogic问题:JSON登录?,ruby-on-rails,ruby,json,authlogic,Ruby On Rails,Ruby,Json,Authlogic,我已经建立了一个非常简单的网站,允许我登录、注销和注册帐户。(几乎相同,只是我已从users migrate表和相关视图中删除了“用户名”,因此只需要一个电子邮件地址) 我现在正在尝试创建一个新的登录操作,以便可以通过JSON登录 我希望能够将get请求发送到http://app:3000/apilogin?email=my@email.com&password=p4ssw0rd并让rails应用程序存储请求来自的IP地址(如果登录正确)并发送相关响应(JSON) 到目前为止,我已经在contr

我已经建立了一个非常简单的网站,允许我登录、注销和注册帐户。(几乎相同,只是我已从users migrate表和相关视图中删除了“用户名”,因此只需要一个电子邮件地址)

我现在正在尝试创建一个新的登录操作,以便可以通过JSON登录

我希望能够将get请求发送到
http://app:3000/apilogin?email=my@email.com&password=p4ssw0rd
并让rails应用程序存储请求来自的IP地址(如果登录正确)并发送相关响应(JSON)

到目前为止,我已经在controllers/user\u sessions\u controller.rb中添加了一个部分,以便:

class UserSessionsController < ApplicationController
  #...
  def new_api
    respond_to do |format|
      format.json
    end
  end
end

但是我不知道在
视图/user\u sessions/new\u api.json.rb
中放什么!你能帮忙吗?

你可以这样做:

  def new_api
    respond_to do |format|
      format.json { render :json => user.slice(:name).to_json }
    end
  end
或者您也可以在
视图/user\u sessions/new\u api.JSON.erb
中生成JSON,就像编写普通erb代码一样。但这不是个好主意:

{"name":"<%= @user.name %>"}
{“名称”:“”}

您可以执行以下操作:

  def new_api
    respond_to do |format|
      format.json { render :json => user.slice(:name).to_json }
    end
  end
或者您也可以在
视图/user\u sessions/new\u api.JSON.erb
中生成JSON,就像编写普通erb代码一样。但这不是个好主意:

{"name":"<%= @user.name %>"}
{“名称”:“”}

您根本不需要定义视图-只需从控制器返回适当的json即可

def new_api
  @user_session = UserSession.new({:email => params[:email], :password => params[:password]})
  respond_to do |format|
    if @user_session.save
      format.json { render :json => {:success => true} }
    else
      format.json { render :json => {:success => false, :message => 'incorrect username or password'}, :status => :unauthorized }
    end
  end
end

您根本不需要定义视图——只需从控制器返回适当的json即可

def new_api
  @user_session = UserSession.new({:email => params[:email], :password => params[:password]})
  respond_to do |format|
    if @user_session.save
      format.json { render :json => {:success => true} }
    else
      format.json { render :json => {:success => false, :message => 'incorrect username or password'}, :status => :unauthorized }
    end
  end
end

非常感谢您的回复-这非常有帮助,但我仍然不知道如何测试正确的登录详细信息!我设置了
params[:email]
params[:password]
但AuthLogic不会使用
@user\u session=UserSession自动拾取这些参数。新建
-您知道我如何将(自标记的)登录凭据传递给UserSession类吗?我已经通过创建UserSession模型编辑了我的答案。看看Authlogic示例应用程序()。太棒了!我正在尝试一次过学习很多关于rails的知识,非常感谢您的帮助!非常感谢您的回复-这非常有帮助,但我仍然不知道如何测试正确的登录详细信息!我设置了
params[:email]
params[:password]
但AuthLogic不会使用
@user\u session=UserSession自动拾取这些参数。新建
-您知道我如何将(自标记的)登录凭据传递给UserSession类吗?我已经通过创建UserSession模型编辑了我的答案。看看Authlogic示例应用程序()。太棒了!我正在尝试一次过学习很多关于rails的知识,非常感谢您的帮助!