2013-02-13 12 views
5

Tworzę aplikację Rails, która nie korzysta z bazy danych. Zamiast tego model jest zarządzany przy użyciu interfejsu API Ruby, który otacza starszy system.Jak mogę korzystać z Rails/Devise bez bazy danych?

Mam wywołanie w języku Ruby, które pozwoli mi sprawdzić poprawność kombinacji nazwa użytkownika i hasło. Czy w tym przypadku możliwe jest korzystanie z Devise (lub jakiegoś innego gotowego rozwiązania uwierzytelniającego)?

Mam nadzieję, że uda mi się zastąpić kilka metod w grze Devise i nadal korzystać z wielu korzyści.

Peter.

Odpowiedz

8

jest to możliwe.

Można zastąpić domyślne uwierzytelnianie i korzystać z usługi zdalnej przy pomocy Devise i Warden.

Ten blogu daje szczegóły jak:

http://4trabes.com/2012/10/31/remote-authentication-with-devise/

Daj nam znać jak poszło ...

Powodzenia

+0

Podana strona opisuje rodzaj rozwiązania, które chcę zaimplementować. Jest jednak dość ogólnikowo pod względem wielu szczegółów. Gdzie na przykład mieszka PORO użytkownika. Czy są trzy klasy użytkowników lub tylko jedna? A gdzie moduły Devise :: Models i Devise :: Strategies? – spierepf

+1

Gah! Musiałem dodać "Devise.add_module: remote_authenticatable,: controller =>: sessions,: route => {: session =>: routes} 'do mojego pliku devise.rb. Nigdy nie spotkałem języka z tak dużą ilością voodoo jak Ruby. Czy ktoś może wyjaśnić, co robi ta linia? – spierepf

0

Jeśli dobrze zrozumiałem, chcesz użyć programu Devise w swoim projekcie do zawinięcia starego systemu uwierzytelniania. Możesz potrzebować czegoś takiego jak zdefiniować metody legacy_username i legacy_password, utworzyć migrację, aby dostosować ją do Devise gem i sądzę, że znajdziesz wyjście. Może ten link może pomóc: http://www.davidverhasselt.com/2012/05/13/how-to-migrate-passwords-from-legacy-systems-to-devise/

a także, może to - jak tworzyć niestandardowe szyfratora w opracować - https://github.com/plataformatec/devise/wiki/How-To:-Create-a-custom-encryptor

mam nadzieję, że to pomoże.

+0

Problem jest to, że nie mam bazę danych . Tak więc ActiveRecord :: Base nie znajduje się w moim słowniku. Ponadto nie zajmuję się szyfrowaniem. – spierepf

Powiązane problemy