2016-12-22 3 views
4

Ich habe vor kurzem angefangen, REST-APIs mit Rails zu entwickeln 5. Ich versuche, rohe Benutzeraktionen durch API-Aufrufe zu tun. Ich habe ein Grundgerät für Benutzer eingerichtet.Benutzer Registrierung in Devise durch API

In meinen Routen Ich habe diese:

Rails.application.routes.draw do 
    devise_for :users, :controllers => {sessions: 'sessions', registrations: 'registrations'} 
end 

ich zwei separate Controller sessions_controller erstellt und registrations_controller außer Kraft zu setzen Methoden ersinnen und JSON-Format akzeptieren zu machen.

class RegistrationsController < Devise::RegistrationsController 
    respond_to :json 
end 

und

class SessionsController < Devise::SessionsController 
    respond_to :json 
end 

Ich versuche, in den folgenden Daten eines Benutzers zu registrieren vorbei:

{ 
    user: { 
     email: [email protected], 
     password: password, 
     password_confirmation: password 
    } 
} 

ich einen Status erhalten, 200 aber in meinem Schienen Server erhalte ich der folgende Fehler:

Started POST "/users" for 23.233.9.94 at 2016-12-22 08:22:11 +0000 
Processing by RegistrationsController#create as */* 
    Parameters: {"Payload: { \r\n user: {\r\n  email: [email protected],\r\n  password: password,\r\n  password_confirmation: password\r\n }\r\n}"=>"[FILTERED]"} 
    (0.2ms) begin transaction 
    (0.1ms) rollback transaction 
Completed 200 OK in 5ms (Views: 0.2ms | ActiveRecord: 0.3ms) 

Also habe ich grundsätzlich 2 Fragen. Wie formatiere ich den JSON, damit meine Gerätecontroller es erkennen und in der Datenbank speichern. Und meine zweite Frage ist, wie ich ein CSRF-Token übergeben. Ein kleines Beispiel würde mir hier wirklich helfen. Vielen Dank im Voraus.

+0

Die Daten, die Sie eine gültige JSON nicht gebucht umschließen. Ihre Konfiguration scheint in Ordnung, aber ich denke, wenn Sie gültiges JSON übergeben, werden Controller es erkennen. – 31piy

Antwort

1

Ihre JSON ist nicht valid.You müssen die Zeichenfolge mit doppelten Anführungszeichen

{ 
    "user": { 
     "email": "[email protected]", 
     "password": "password", 
     "password_confirmation": "password" 
    } 
} 
Verwandte Themen