3 Stimmen

Welche Ansätze können wir verwenden, um sowohl API-Clients als auch normalen Benutzern in einer Rails-Anwendung einen sauberen Zugang zu ermöglichen?

Wir bauen eine Rails 3-Webanwendung, die regelmäßige Benutzer, die die Website besuchen, autorisieren und authentifizieren muss. Die gleichen Benutzer können auch Anwendungen von Drittanbietern verwenden, um über unsere API auf die Website zuzugreifen.

Welche Ansätze können wir verwenden, um sowohl den Kunden als auch den Nutzern einen effektiven und sauberen Zugang zu ermöglichen? Welche Strategien haben Sie in Ihren eigenen Rails-Anwendungen verwendet, die auch RESTful APIs haben?

Idealerweise suchen wir nach einer Lösung, die:

  • funktioniert gut mit Devise und CanCan (die wir bereits für authn/authz verwenden)
  • spielt gut mit Mongoid
  • verschmutzt unsere Kontrolleure nicht
  • ist relativ einfach zu installieren und zu konfigurieren, wenn es sich um ein Gem oder Plugin handelt
  • leicht testbar ist, wenn es sich um eine allgemeine Strategie handelt; oder bereits getestet ist, wenn es sich um ein Juwel oder ein Plugin handelt

0voto

Dave Rapin Punkte 1483

Da Sie bereits Devise verwenden, werfen Sie einen Blick auf die token_authenticatable-Strategie (fügen Sie sie Ihrem Benutzermodell hinzu und stellen Sie sicher, dass der Devise-Init den Token-Parameter widerspiegelt, den Sie nennen).

Fügen Sie "before_save :ensure_authentication_token" zu Ihrem Benutzermodell hinzu (vorausgesetzt, Sie wollen nicht, dass es nur einmalig verwendet wird).

Geben Sie Ihren Nutzern einfach ihre Token, zum Beispiel auf ihrer Profilseite oder wo auch immer. Nennen Sie es ein API-Token, wenn Sie möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X