Rails Webservice mit Authentifizierung ??? Benutzer angemeldet?

8

Irgendeine Idee, wie ich gehen würde, haben einen Schienen-REST-Webservice, in dem ein Benutzer nur ihre eigenen Daten nur erhalten, setzen, posten, löschen kann? Ich benutze Devise als mein Benutzer-Authentifizierungs-Juwel, aber ich bin mir nicht sicher, ob dies die Dinge in einer REST-freundlichen Weise behandelt.

Wie kann ich sicherstellen, dass der Benutzer "eingeloggt" ist und seine Daten ändern kann? Muss ich bei jeder Anfrage eine Art Token herumreichen?

    
newbie on rails 11.11.2010, 01:13
quelle

2 Antworten

3

Devise stellt Ihnen nur eine Authentifizierung zur Verfügung. Dies bedeutet, dass Sie ein gewisses Maß an Sicherheit haben, dass der Benutzer identifiziert wird und wer er / sie sagt, er / sie ist. Anhand dieser Informationen können Sie mithilfe von Rails-Mechanismen oder anderen Rails-Objekten (d. H. CanCan, Aegis, declarative_authorization) Benutzer autorisieren und Berechtigungen definieren.

Eine einfache Methode wäre die Verwendung eines before_filter auf Ihrem fraglichen Controller, um festzustellen, ob zum Beispiel ein BlogPost zu dem angemeldeten Benutzer gehört.

Hier ist ein einfaches Beispiel, was ich meine:

%Vor%

Die is_user_allowed -Methode ruft die BlogPost ab, die abgefragt wird, und bestimmt, ob die current_user die Aktion ausführen darf, indem sie die Benutzer-IDs vergleicht. Wenn die Ungleichheit wahr ist, wird sie auf unser berüchtigtes access_denied_page_path umgeleitet.

Weitere Informationen zu Filtern finden Sie in diesem Edge-Guides-Artikel .

Weitere Informationen zu Rails-Steinen, die Ihnen diese Funktionalität bieten (und more ), werfen Sie einen Blick auf Google und suchen Sie nach rails authorization . Außerdem, hier sind einige Railscasts, die einen Einblick geben sollten:

John 11.11.2010 01:53
quelle
3

Sehen Sie sich AuthLogic single_access_token an. Es wurde für die Authentifizierung von REST-APIs entwickelt.

    
Steve Wilhelm 16.12.2010 07:40
quelle