iOSアプリケーションとのユーザー認証にDeviseを使用しているRails 3.1アプリを統合する作業を進めています。ユーザーがアプリケーションから登録できるようにしておき、後でログインするためにこれらの資格情報を保存することができます。 RestKitを使用してJSONからDeviseでユーザーを作成
、私はこれを行う:(すくい経路に従って)user_registration POST /users(.:format) {:action=>"create", :controller=>"devise/registrations"}
:
-(IBAction)registerUser:(id)sender {
NSDictionary *params = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:
self.email.text,
self.password.text,
self.confirmPassword.text,
nil]
forKeys:[NSArray arrayWithObjects:
@"email",
@"password",
@"password_confirmation",
nil]];
[[RKClient sharedClient] post:@"/users.json" params:params delegate:self];
}
/users.json
URLがに行きます。ポストコールはさまざまなフォーマットを受け入れているようですので、JSONを受け入れると仮定します。 My PostのリクエストはJSONとしてシリアル化され、送信されます。サーバーはそれを取得し、これはログです:
Started POST "/users.json" for 129.21.84.10 at 2012-01-12 15:33:57 -0500
Processing by Devise::RegistrationsController#create as JSON
Parameters: {"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "email"=>"[email protected]"}
WARNING: Can't verify CSRF token authenticity
User Load (0.9ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
(0.3ms) BEGIN
(0.2ms) COMMIT
(0.2ms) BEGIN
(0.4ms) ROLLBACK
Completed 422 Unprocessable Entity in 93ms (Views: 3.8ms | ActiveRecord: 10.2ms)
私は422エラーが発生し、私のユーザーは作成されません。 iOSアプリケーションが取得する応答は、Response: {"email":["can't be blank"],"password":["can't be blank"]}
です。しかし、パスワードと電子メールは空白ではなく、サーバーは正常に取得しました。だから、何かがうまく動作していない、と私はどこに行くか分からない。 JSONを使用してユーザーを作成するにはどうすればよいですか?
ありがとうございます!
これはこれまでに実現しましたか? – Quentamia
いいえ、でも、動かなくても動きました。私は将来的にそれを必要とするかもしれません... –