Я новичок в программировании на iOS и с помощью Rubymotion создаю свое первое приложение. В моем Rubymotion приложении I POST на веб-сервер (приложение построено с использованием RoR) для аутентификации пользователя, желающего Вход и использует Bubblewrap камень для RubyMotion https://github.com/rubymotion/BubbleWrap/blob/master/motion/http.rbRubymotion: GET Request using JSON
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
Теперь, как только я получаю успешную аутентификацию я двигаюсь на, чтобы получить 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. Я знаю это, потому что в веб-приложении, если аутентификация не удалась, она перенаправляется на страницу входа, и это ответ (HTML-код страницы входа), который я получаю из запроса GET.
проверка подлинности на Web App:
def session_check
if session[:bizid].nil?
redirect_to login_url
flash[:notice] = "Please login to view your account!"
end
end
Кроме того, на веб-приложение, этот маркер аутентификации задается следующим способом:
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
Любые идеи, что я могу делать неправильно Вот?
Заранее благодарен!
Ваша поговорка @authCookie равна нулю в GET? – Swards
Я тестировал код немного больше. Я думаю, что что-то не так в самом POST. @authCookie возвращает некоторое значение в POST, однако, когда я проверяю response.body после запроса POST, он возвращает страницу входа, которая возникает только в случае сбоя аутентификации. – user1748009
вы знаете, что apb bubblewrap работает асинхронно и вам нужно присоединиться к потокам, когда вы хотите последовательно делать запросы? – phoet