我有一个 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] 并且我获得了前端的正确状态
然后在前端内部我无法访问 params[:status] 或 params[:user] excpet on byebug 我试图做 session[:user_id] = params[:user] 并且它不起作用
我在这里错过了什么?
经过一些谷歌搜索和玩耍后,我发现我做错了。
因为动作已经执行并且它的所有变量都消失了 - 据我所知 - 所以我设法通过执行来获取这个信息:
conn.get '/auth_user'
然后我可以收到带有我需要的 json 信息的响应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句