我有一个API,它有一个数据库和另一个没有活动记录的rails APP,我也使用ActiveResource来管理一些数据库查询
我的前端应用控制器是
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
skip_before_action :verify_authenticity_token
end
我有一个操作来验证从我的前端到API的用户
从前端我有这个方法
def create_session
conn = Faraday.new(:url => 'http://localhost:3001')
conn.post '/auth_user', { :email => params[:email], :password => params[:password] }
end
和API
def auth_user
user = User.find_by(email: params[:email])
if user && user.authenticate(params[:password])
conn = Faraday.new(:url => 'http://localhost:3000')
conn.post '/add_session', { :status => "right", :user => user.id }
else
conn = Faraday.new(:url => 'http://localhost:3000')
conn.post '/add_session', { :status => "wrong" }
end
端
请注意,我可以访问params [:email]和params [:password],我可以获得正确的前端状态
然后在前端内部我无法访问param [:status]或params [:user] excpet on by bybug 我试着做会话[:user_id] = params [:user]而且它不能正常工作
我在这里缺少什么?
答案 0 :(得分:0)
经过一些谷歌搜索和玩耍后,我发现我的做法是错误的。
因为行动已经执行并且所有变量都已经消失 - 据我所知 - 所以我设法通过执行来获取此信息:
conn.get '/auth_user'
然后我可以收到我需要的json信息的回复。