Verwenden von Devise zum Anmelden, Anmelden und Abmelden mit einer iOS-App

Ich habe eine sehr einfache Rails-App, die Devise für die Benutzeranmeldung, die Anmeldung usw. verwendet. Ich möchte Devise für eine iOS-App verfügbar machen. Es gibt viele Themen, die auf hohem Niveau erklärt werden, aber ich bin sehr neu bei Rails. Grundsätzlich schicke ich eine Anfrage an users / sign_up wie folgt:

AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://localhost:5000"]];
//[client defaultValueForHeader:@"Accept"];
[client setParameterEncoding:AFJSONParameterEncoding];
NSDictionary *params = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:
                                                            @"[email protected]",
                                                            @"testtest",
                                                            @"testtest",
                                                            nil]
                                                   forKeys:[NSArray arrayWithObjects:
                                                            @"email",
                                                            @"password",
                                                            @"password_confirmation",
                                                            nil]];

[client registerHTTPOperationClass:[AFHTTPRequestOperation class]];
NSURLRequest *request = [client requestWithMethod:@"GET" path:@"/users/sign_up" parameters:params];
AFHTTPRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSLog(@"%@", JSON);
    NSLog(@"%@", [response allHeaderFields]);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
}];

[operation setAcceptableContentTypes:[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/plain",@"text/html", nil]];
[operation start];

Dies scheint auf der iOS-Seite durchzugehen, da ich ein OK von 200 erhalte:

   2013-01-21 13:38:00.412 Starfish[35773:c07] I 
restkit.network:RKHTTPRequestOperation.m:152 GET 'http://localhost:5000/signup?password=testtest&password_confirmation=testtest&email=first.last%40gmail.com'
2013-01-21 13:38:01.073 Starfish[35773:c07] (null)
2013-01-21 13:38:01.073 Starfish[35773:7207] I restkit.network:RKHTTPRequestOperation.m:179 GET 'http://localhost:5000/signup?password=testtest&password_confirmation=testtest&email=first.last%40gmail.com' (200 OK) [0.6611 s]
2013-01-21 13:38:01.074 Starfish[35773:c07] {
    "Cache-Control" = "max-age=0, private, must-revalidate";
    Connection = close;
    "Content-Type" = "text/html; charset=utf-8";
    Etag = "\"5dfe88700e41a015a8f524850446e327\"";
    Server = "thin 1.5.0 codename Knife";
    "Set-Cookie" = "_geo-photo_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTEyZTJjMjFkZjAwZGZlMWIzMTJmNTg5ODNkNjM5OGI0BjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMTN4eUZGUzVhb1pIdXc1QlJJUnBxSFVrZmYvUDdpeGtaeklxNGhOejFOeEk9BjsARg%3D%3D--5130edc939facbe7004570141c069d40f5f7feca; path=/; HttpOnly";
    "X-Request-Id" = a2480798afed4e7aca17f3f1e2d3d44d;
    "X-Runtime" = "0.219984";
    "X-UA-Compatible" = "IE=Edge";
}

Und auf der Rails-Seite:

Started GET "/signup?password=[FILTERED]&password_confirmation=[FILTERED]&email=first.last%40gmail.com" for 127.0.0.1 at 2013-01-21 13:38:00 -0800
13:43:15 web.1  | Processing by Devise::RegistrationsController#new as */*
13:43:15 web.1  |   Parameters: {"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "email"=>"[email protected]"}
13:43:15 web.1  |   Rendered devise/shared/_links.erb (2.1ms)
13:43:15 web.1  |   Rendered devise/registrations/new.html.erb within layouts/application (23.7ms)
13:43:15 web.1  | Completed 200 OK in 142ms (Views: 64.9ms | ActiveRecord: 6.9ms)

Out-of-the-Box-Anmeldung:

<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <div><%= f.label :email %><br />
  <%= f.email_field :email, :autofocus => true %></div>

  <div><%= f.label :password %><br />
  <%= f.password_field :password %></div>

  <div><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></div>

  <div><%= f.submit "Sign up" %></div>
<% end %>

<%= render "devise/shared/links" %>

Das Problem, für dessen Lösung ich Rails nicht genug kenne, ist, dass ich keine gerenderten Ansichten möchte. Ich möchte einfach die Anmeldeinformationen oder Anmeldeinformationen als JSON-Objekte übergeben und eine Bestätigung erhalten, dass der Benutzer erstellt oder angemeldet wurde. Was ich oben habe, erstellt den Benutzer nicht, weil er versucht, eine Ansicht zu rendern. Jede Hilfe wäre sehr dankbar. Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage