2010-03-31 41 views
7

Kennt jemand eine gute Anleitung zum Aufbau eines eigenen Authentifizierungssystems in Ruby on Rails? Ich möchte mein eigenes System rollen, um mit meiner Gemeinschaft im Gebäude zu verwenden :)Ruby-on-Rails Authentifizierungsanleitung

Vielen Dank!

Antwort

8

Ich würde empfehlen mit Warden zu beginnen - es wird die Grundlagen der Sitzungen für Sie behandeln, und geben Ihnen eine gute Grundlage, um Ihre Logik auf. Das Rails Warden Plugin ist eine ziemlich kleine Bibliothek, die bei der Integration in Rails hilft. Beide Projekte sind ziemlich ausgereift und gut gebaut, werden aber immer noch aktiv entwickelt - sie sind eine gute Wahl.

Sie sollten sich bewusst sein, Devise, ein anderes Authentifizierungs-Framework (wie Authlogic oder Restful Authentication), die auf Warden basiert. Es passt vielleicht nicht gut zu Ihrem Projekt (es war nicht für mich), aber wenn Sie sich die Quelle ansehen, werden Sie vielleicht ein paar Ideen bekommen, wie Sie Warden am besten nutzen können.

Die andere Sache, die ich beachten werde ist, dass in Bezug auf die Hash-Passwörter sollten Sie unbedingt bcrypt verwenden.

+0

Devise scheint von dem selben Typen erschaffen worden zu sein, der Warden gemacht hat? ist das richtig, ich mag Warden. Aber der Wärter muss durch dieses "Rack" gehen? Und was ist das Rack? wenn du das wirklich einfach erklären könntest. Ist es gut? Soll ich es benutzen? – Lisinge

+1

Warden und Devise teilen einige Entwickler, ja. Rack ist eine Schnittstelle zwischen Ruby-Web-Frameworks und den Servern, auf denen sie ausgeführt werden. Rails ist auf dem Rack aufgebaut, also verwenden Sie es bereits. Und wenn Sie Warden and Rails Warden verwenden, müssen Sie sich keine Gedanken über die direkte Interaktion mit Rack machen - sie kümmern sich darum. Es gibt ein Video, das mehr über Rack hier erklärt, wenn Sie neugierig sind, aber es ist wahrscheinlich nicht etwas, worüber Sie sich sorgen müssen: http://railslab.newrelic.com/2009/06/05/episode-14- Rack-Metall – PreciousBodilyFluids

+0

okay, danke :) – Lisinge

1

Da Authentifizierung ein häufiges Problem ist, das schon viele Male gelöst wurde, würde ich mit der Suche nach Lösungen beginnen.

Betrachten Sie zum Beispiel Restful Authentication, die eine gute Grundlage für die Authentifizierung in Rails bietet. Selbst wenn Sie lieber Ihr eigenes System rollen, mit Restful Authentication experimentieren und verstehen, wie es funktioniert, sollten Sie ein gutes Verständnis der Komponenten erhalten, die Sie benötigen, wenn Sie mit dem Aufbau Ihres eigenen Systems beginnen.

+0

Ich habe sowohl Restful Authentication und Authlogic ausprobiert und ich glaube nicht, dass sie mir passen.deshalb möchte ich meine eigene rollen – Lisinge

+0

Ich dachte mehr entlang der Linien der Zerlegung einer dieser Lösungen zu verstehen, wie sie unter der Haube arbeiten. Es ist nicht nur eine gute Übung zum Codelesen, sondern nachdem Sie eines dieser Systeme verstanden haben, wird es relativ einfach sein, Ihre eigene Lösung zu erstellen, die Ideen zu übernehmen, die Sie mögen, und Dinge zu ändern, die Ihnen nicht gefallen. –

0

Schauen Sie sich diesen Artikel:

http://www.aidanf.net/rails_user_authentication_tutorial

Der Autor geht, Schritt für Schritt, durch einen gesamten Authentifizierungs-Framework, mit Vorschlägen für weitere Verbesserungen. Sogar Tests werden besprochen.

+3

Dieser Artikel ist fast vier Jahre alt und entspricht nicht den aktuellen Best Practices. Ich würde es vermeiden und nach aktuelleren Ressourcen suchen. –

+0

habe es schon versucht. Es ist zu alt – Lisinge

+0

Wirklich? Könntest du mir vielleicht sagen, wo ich nach "best-practice" Informationen suchen soll? Ich habe nach einem guten Ort gesucht, um diese Art von Informationen zu finden. Ich hatte keine Ahnung, dass der Artikel Konventionen bricht. –

4

michael hartl hat ein gutes Buch veröffentlicht und die ersten 8 Kapitel gibt es im pdf-Format kostenlos hier: http://www.railstutorial.org/ - sie decken den gesamten Prozess der Schaffung eines sehr soliden rspec-driven Authentifizierungssystems - kann es nicht empfehlen hoch genug

+0

Wird es lesen :) danke! – Lisinge

+1

Btw, tolles Buch! Danke für den Tipp – Lisinge

2

Nun, es kam eine Weile nachdem Sie Ihre Frage gestellt, aber die beste Antwort, wenn Sie daran interessiert sind, Ihr eigenes Authentifizierungssystem zu bauen, anstatt etwas wie Devise würde wahrscheinlich Ryan Bates' Authentication from Scratch Screencast sein.

+0

Nachdem ich diesen Railscast gelesen habe, würde ich auch diesen hier ausprobieren: http://railscasts.com/episodes/270-authentication-in-rails-3-1 – antinome

0

Ich stimme Ritchie zu ... Devise hat einige sehr nette Features, aber es spielt nicht gut mit anderen. Für viele Anwendungsfälle kann die Art und Weise, wie es das Routing entführt, Ihre Arbeit erschweren. In vielen Situationen können Sie besser Ihre eigenen rollen.

Devise hat zirkuläre Verweise in meiner Rails-Asset-Pipeline verursacht, und die Einstellungen im Initialisierer als installiert (in der neuesten Version von gestern) widersprachen den Standardeinstellungen in der Migration, die generiert wurde.

Ich habe Enterprise-Level-Authentifizierungssysteme, einschließlich E-Mail-Verifikation, Passwort-Wiederherstellung, etc. Und keiner davon benötigt die Routing-Shenanigans, die Devise verwendet. Wenn Sie wirklich alle Funktionen benötigen, kann es für Sie sein. Aber es gibt viele Gründe, es auch nicht zu benutzen.

Verwandte Themen