私はiOSプログラミングに不慣れで、Rubymotionを使用して最初のアプリケーションを構築しています。私のRubymotionアプリでは、ログインを希望するユーザーを認証するためにWebサーバー(RoRを使用して構築されたアプリ)にPOSTし、RubyMotion用のBubbleWrapgemを使用していますhttps://github.com/rubymotion/BubbleWrap/blob/master/motion/http .rb
def login(sender)
payload = {email: @email, password: @password}
BubbleWrap::HTTP.post("http://example.com/sessions", {payload: payload}) do |response|
@authCookie = response.headers['Set-Cookie']
end
end
認証が成功したら、次のコードを使用してWebアプリケーションからJSONデータを受信します。
BubbleWrap::HTTP.get("http://example.com/events.json", {cookie: @authCookie, :headers=>{"Content-Type"=>'json'} }) do |response|
puts response.body #testing the response
end
何らかの理由で、POSTリクエストから受信した認証トークンがGETリクエストによって正しく渡されていません。Webアプリでは、認証に失敗するとログインページにリダイレクトされ、それがGETリクエストからの応答(ログインページのHTMLコード)であるため、私はこれを知っています。
Webアプリでの認証チェック:
def session_check
if session[:bizid].nil?
redirect_to login_url
flash[:notice] = "Please login to view your account!"
end
end
さらに、Webアプリでは、この認証トークンは次の方法で設定されます。
def create
current_biz = Bizname.find_by_email(params[:email])
if current_biz && current_biz.authenticate(params[:password])
session[:bizid] = current_biz.id
flash[:notice] = 'Login Successful!'
if current_biz.events.empty?
redirect_to getsetup_url
else
redirect_to account_summary_url
end
else
flash[:notice] = 'Incorrect Email or Password.'
redirect_to login_url
end
end
私がここで間違っているかもしれないことについて何か考えはありますか?
前もって感謝します!