APIと通信するデータベースのないRailsアプリがあります。
認証のために、ユーザーのクレデンシャルをAPIに送信し、成功した場合はセッショントークンを受け取ります。その後、私が行うすべてのAPIリクエストには、そのトークンが含まれている必要があります。
api_request.rb:
class ApiRequest
def initialize(relative_path,params={})
params = _add_base_data params
send_request relative_path, params
end
private
def send_request(relative_path,params)
conn = Faraday.new(:url => MyApp::Application.config.server) do |faraday|
faraday.request :url_encoded
faraday.response :logger
faraday.adapter Faraday.default_adapter
end
encoded = conn.post relative_path,params
@data = JSON.parse encoded.body
@data
end
def _add_base_data params
params[:session_token] = ?
params
end
end
my_session.rb:
class MySession
def login? email,pass
params = { :email => email, :password => pass }
resp = ApiRequest.new '/user/login', params
if resp.failed?
false
else
@session[:token] = resp.data['session_token']
true
end
end
end
呼び出しごとにセッショントークンをApiRequestモデルで使用できるようにするにはどうすればよいですか?