2013-04-12 10 views
5

Jestem rubinem na noobie kolejowym. W przeciwieństwie do mnie jestem dość dobry w moim HTML CSS javascript i jQuery. Niedawno dostałem ruby ​​na szynach przy użyciu tego samouczka Michaela Hartla: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book.Dlaczego noobs nie powinien używać Gem Devise?

Ale niestety próbuję zbudować własny projekt i użyć gem devise jako prostego sposobu na uwierzytelnianie. Ponieważ początkującemu trudno jest dokonać uwierzytelnienia. Jednak wszyscy wspominali, że nooby nie powinny używać tego klejnotu.

Dlaczego nie powinno się używać noobu do własnego projektu?

Dziękuję za wszelkie wskazówki, ale wolałbym pełną odpowiedź.

+2

Czy zawsze słuchać ludzi, którzy mówią ci, że nie można zrobić rzeczy? Spróbuj. Jeśli sobie z tym poradzisz, dobrze, jeśli nie, poproś o pomoc. Twoje obecne pytanie jest jednak nie na temat. –

+2

@ SébastienRenauld Nie sądzę, że to nie temat. Jeśli cokolwiek jest źle sformułowane, ale moim zdaniem jest to uzasadnione pytanie. – Mohamad

+0

@Mohamad: to jest naprawdę źle sformułowane. "jest łatwy w użyciu/w jaki sposób używać programistów?" Byłoby o wiele mniej subiektywne/stronnicze niż "dlaczego nie powinno się używać noobów?". pierwszy prosi o radę, drugi o opinie. –

Odpowiedz

7

Całkowicie nie zgadzam się z poradami, które otrzymałeś do tej pory, w tym z innych odpowiedzi tutaj.

toczenia własne uwierzytelnianie, zwłaszcza początkujący, jest to dobry sposób, aby umieścić swoich użytkowników na niebezpieczeństwo. Bezpieczeństwo (a zwłaszcza crypto) jest trudne i prawdopodobnie będziesz się mylił, nawet jeśli masz doświadczenie.

Jeśli chcesz dowiedzieć się, jak działa uwierzytelnianie oparte na haśle (i powinieneś), naucz się go w wolnym czasie. Nie zmuszaj użytkowników do ignorowania przedmiotów testowych i narażaj ich prywatność na ryzyko.

+3

Zgadzam się co do zasady. Ale istnieje wiele innych rzeczy, które mogą narazić użytkowników na ryzyko. Budowanie aplikacji bez prawdziwej wiedzy na temat tego, w jaki sposób struktura lub język mogą stwarzać to samo ryzyko. Twierdzę, że nie powinieneś budować poważnej aplikacji, zanim nie poznasz podstaw bezpieczeństwa. Używanie Devise nie nauczy cię tego. – Mohamad

+0

... ani nie nauczy Cię, jak określać zasoby dla obecnych użytkowników i tak dalej. – Mohamad

+1

Więc twoim argumentem jest to, że ponieważ możesz popełniać błędy gdzie indziej, nie powinieneś się przejmować, czy popełniasz błędy z auth? –

3

Chodzi o to, że jako noob, poznanie podstaw działania uwierzytelniania jest naprawdę użyteczne. Nawet jeśli w przyszłych projektach używasz Devise cały czas, mając doświadczenie w rozwijaniu własnego uwierzytelniania, dzięki czemu wiesz, co dzieje się za kulisami w Devise jest naprawdę pomocne.

Musisz podjąć decyzję w tej sprawie. Jeśli spieszysz się, aby otworzyć aplikację, dowiedz się, jak korzystać z Devise w pierwszej kolejności. Jeśli jednak masz czas, starasz się wymyślić, jak rzucić własną, to dobry pomysł. Przynajmniej, warto poświęcić czas, aby sprawdzić Ryan Bates film na toczenia własne: http://railscasts.com/episodes/250-authentication-from-scratch

Również to z dokumentacji opracować zniechęca nowych szyn Devs z użyciem Devise: https://github.com/plataformatec/devise#starting-with-rails

5

Jeśli nie zamierzasz używać Wyjdź z pudełka bez żadnych modyfikacji, używanie Devise może kosztować więcej czasu niż pisanie własnego uwierzytelnienia.

To zależy od złożoności Twoich potrzeb. Na przykład, czy potrzebujesz zapomnianego hasła, funkcji weryfikacji, itp ...

Wdrażanie własnego uwierzytelniania jest niezwykle proste dzięki Railsom 'has_secure_password. Bardzo pomocne jest również wiedzieć, co dzieje się za kulisami. To część procesu uczenia się, trywialna i zabawna.

Dosłownie potrzeba około 10 linii kodu, aby napisać podstawowe uwierzytelnienie. Jak powiedzieli inni, jeśli nie masz pilnej potrzeby, po prostu postępuj zgodnie z samouczkiem. Dowiesz się z tego wielu dobrych rzeczy, a korzystanie z Devise spowoduje, że stracisz wiele świetnych informacji.

+4

Nie zgadzam się z niektórymi z tych odpowiedzi. Devise ma wbudowane 10 różnych modułów (pamiętaj, zapomniałeś hasła, itd.), A stworzenie tych modułów w ramach rozwijania własnego Auth zajęłoby ci więcej niż 10 linii. – Catfish

+0

@Catfish, punkt wzięty. Chociaż funkcja 'remember_me' zajmuje około 6 linii. Wyjaśnię. – Mohamad

+1

Nauczyłem się, jak tworzyć użytkowników od zera, bez używania generatorów do niczego poza migracjami, kiedy po raz pierwszy poczułem, że naprawdę rozumiem, jak działają railsy, ​​uczy tras, w jakich kontrolerach kolejności są wywoływane, co before_filter/before_action jest, jak uzyskać dostęp do informacji z modelu, który nie jest tym samym, co kontroler. Próbowałem użyć Devise'a zanim przeturlałem się, i odkryłem, że Devise to ból głowy w porównaniu do toczenia własnego. OO jest Twoim najpotężniejszym klejnotem, naucz się go. – christoshrousis

Powiązane problemy