Najlepsze rozwiązanie do uwierzytelniania w Ruby on Rails [closed]

Szukam gotowego rozwiązania, które mogę wykorzystać w mojej aplikacji RoR. Szukam czegoś podobnego do ASP.NET uwierzytelnianie formularzy zapewnia walidację poczty e-mail, kontrolę rejestracji i umożliwia użytkownikom resetowanie haseł. O tak, i łatwo pozwala mi wyciągnąć użytkownika, który jest aktualnie zalogowany do aplikacji.

Zacząłem przyglądać się już napisanym utworom, ale uznałem to za bardzo mylące. Spojrzałem na LoginGenerator, RestfulAuthentication, Soltedlogingenerator, ale nie wydaje się być jednym miejscu, które ma świetne tutoriale lub dostarczyć ich porównanie. Jeśli jest strona, której jeszcze nie odkryłem, lub jeśli istnieje de facto standard, z którego korzysta większość ludzi, byłbym wdzięczny za pomocną dłoń.

Author: Orion Edwards, 2008-08-23

12 answers

AuthLogic wydaje się być nowym dzieckiem w bloku i wydaje się być kolejną ewolucją restful_authentication, łatwiejszym w użyciu, itp

Http://github.com/binarylogic/authlogic/tree/master

Edit: teraz, gdy Rails 3 już jest, Devise wydaje się być nowym, nowym dzieckiem na bloku

Https://github.com/plataformatec/devise a może właśnie uruchamiam własne uwierzytelnianie z has_secure_password wbudowanym w Rails http://railscasts.com/episodes/250-authentication-from-scratch-revised

Uwaga: Ruby Toolbox jest świetnym miejscem do znalezienia najlepszego rozwiązania w różnych kategoriach (w oparciu o liczbę obserwatorów GitHub):

Http://ruby-toolbox.com/categories/rails_authentication.html

 82
Author: Brian Armstrong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-11 19:42:49

Naprawdę polecam Restful Authentication . Myślę, że to standard de facto.

 21
Author: John Topley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-23 15:33:44

Dla naprawdę prostego rozwiązania wybierz .

Jeśli szukasz więcej opcji Devise jest świetnym rozwiązaniem. Wykorzystuje Warden, który jest systemem uwierzytelniania opartym na szafie.

 10
Author: Nick Hammond,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-20 04:49:31

Chciałbym również zwrócić uwagę na doskonały tutorial/dyskusja na rozszerzenie podstawowej funkcjonalności Restful Authentication, na wypadek, gdybyś szukał czegoś bardziej solidnego.

 4
Author: Bryan M.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-05 01:59:58

Istnieje również RestfulOpenIDAuthentication jeśli chcesz mieć wsparcie OpenID oprócz wsparcia dla haseł.

 3
Author: James A. Rosen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-23 16:46:52

Tylko uwaga, LoginGenerator i SaltedLoginGenerator zostały zastąpione przez Restful Authentication i nie są obsługiwane w nowszych wydaniach Rails -- nie marnuj na nie czasu, chociaż były wtedy świetne.

 3
Author: pantulis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-01 06:02:50

Bardzo mi się podoba Bardzo prosty i ma kilka dobrych haczyków i można go przetestować.

 3
Author: sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-08 17:59:52

AuthLogic wydaje się być tym, czego chcesz do tego. Jest bardzo konfigurowalny i chociaż nie generuje kodu dla Ciebie, jest dość łatwy w użyciu. Do walidacji poczty e-mail i odzyskiwania hasła prawdopodobnie chcesz użyć kolumny :perishable_token. AuthLogic dba o to, tylko trzeba go zresetować, gdy jest używany. Aby dowiedzieć się, jak skonfigurować podstawową aplikację, możesz spojrzeć na Railscast Ryana Batesa na AuthLogic, i "oficjalną" przykładową aplikację. Ben Johnson, twórca AuthLogic napisał również post na blogu o tym, jak zresetować hasła.

niestety nie mogę dodać więcej niż jeden link, ale linki do railscast, reset hasła blog post i przykładowa aplikacja są w README (zobacz repo AuthLogic dla README)

Update: teraz mogę zamieszczać więcej linków, więc podlinkowałem trochę więcej. Dzięki marinatime za dodanie linku w międzyczasie

 3
Author: henrikhodne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-02 21:04:10

Restful_authentication jest potężnym narzędziem, które jest bardzo elastyczne i zapewnia większość tego, czego szukasz po wyjęciu z pudełka. Jednak kilka zastrzeżeń:

    Nie myśl w kategoriach "kontroli". W Rails model, widok i kontroler są znacznie bardziej niezależne niż w "Webforms-style" ASP.NET. opracuj, co chcesz od każdej warstwy niezależnie, napisz testy/specyfikacje, aby pasowały i upewnij się, że każda warstwa robi to, czego oczekujesz.
  1. nawet jeśli używasz wtyczki jest nie zastąpi odczytu (przynajmniej części) wygenerowanego kodu. Jeśli masz duży obraz tego, co dzieje się pod maską, debugowanie i dostosowywanie będzie znacznie łatwiejsze.
 2
Author: domgblackwell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-19 21:54:02

Plugin restful_authentication i inne wtyczki, które go rozszerzają, doskonale odpowiadają na twoje potrzeby. Szybkie wyszukiwanie na github.com ujawni wiele samouczków, przykładów i rozszerzeń. Po prostu wejdź tutaj:
- http://github.com/search?q=restful_authentication

Istnieje kilka projektów, które używają restful_authentication tylko po to, aby dostarczyć przykłady aplikacji rails z tylko częściami uwierzytelniającymi.

  1. http://github.com/fudgestudios/bort -- Aplikacja base rails zawiera: RESTful Authentication
  2. http://github.com/mrflip/restful_authentication_example -- kolejny projekt z wielkim egzaminem jak używać restful_authentication
  3. http://github.com/activefx/restful_authentication_tutorial -- to samo co wyżej, z kilkoma innymi wtyczkami w pakiecie.
  4. http://railscasts.com/episodes/67-restful-authentication -- świetny screencast wyjaśniający restful_authentication

To informacje powinny wystarczyć, żebyś zaczął szukać orła i reszka ... powodzenia.

 2
Author: Evgeny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-20 01:13:38

Właśnie aktualizuję to: Ryan Bates' Railscast #250 pokazuje budowanie systemu uwierzytelniania od podstaw....

 2
Author: Adam Jonas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-20 20:22:47

Kolejny głos za pozwoleniem - może nie tak konfigurowalnym lub Tak " in " jak authlogic, ale jeśli chodzi o możliwość porzucenia go i odejścia, to zdecydowanie warto się temu przyjrzeć.

 0
Author: Dave Smylie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-22 05:52:09