Tôi đang làm việc để tích hợp ứng dụng Rails 3.1 của tôi chạy Devise để xác thực người dùng bằng ứng dụng iOS của tôi. Tôi muốn người dùng có thể đăng ký từ ứng dụng và sau đó tôi có thể lưu trữ các thông tin xác thực đó để đăng nhập sau.Tạo người dùng trong Devise từ JSON
Sử dụng RestKit, tôi làm điều này:
-(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];
}
Url /users.json
đi: user_registration POST /users(.:format) {:action=>"create", :controller=>"devise/registrations"}
(theo tuyến đường cào). Có vẻ như cuộc gọi bài chấp nhận các định dạng khác nhau, vì vậy tôi cho rằng nó sẽ chấp nhận JSON. Yêu cầu Bài đăng của tôi được đăng theo thứ tự là JSON và được gửi đi. Máy chủ nhận được nó và đây là nhật ký:
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)
Tôi gặp lỗi 422 và người dùng của tôi không được tạo. Phản hồi mà ứng dụng iOS của tôi nhận được là: Response: {"email":["can't be blank"],"password":["can't be blank"]}
. Nhưng mật khẩu và email không trống, máy chủ đã nhận được chúng thành công. Vì vậy, một cái gì đó không làm việc đúng, và tôi không chắc chắn đi đâu. Làm cách nào để tạo người dùng bằng JSON?
Cảm ơn bạn đã trợ giúp!
Bạn đã từng làm việc này chưa? – Quentamia
Không, nhưng tôi đã tiếp tục mà không cần nó hoạt động. Tôi có thể cần nó trong tương lai mặc dù ... –