Opracowuję opracowane narzędzie internetowe, które korzysta z Node.js i Socket.io. To jedna strona internetowa i używa Node.js do uzyskania danych ze strony internetowej mediów społecznościowych i wyświetlania na tej samej stronie. Chciałbym dodać specyficzny system logowania dla witryny, ale nie chcesz używać "Express" lub "< href = "http://passportjs.org/" rel = "Nofollow"> paszport ", ponieważ dodaje dużo przeciążenia na stronie, gdy nie jest to potrzebne.

Jestem Newbie z Node.js i chciałbyś wiedzieć, czy muszę mieć system logowania z węzłem

Uwaga: Muszę utrzymywać sesję, aby zalogować dane użytkownika, takie jak czas logowania, zapytanie wyszukiwania i może być ciepła.

Z góry dziękuję. W razie potrzeby mogę wyjaśnić szczegółową część pytania szczegółowo.

3
chheplo 30 lipiec 2012, 23:18

2 odpowiedzi

Najlepsza odpowiedź

Korzystanie z czegoś takiego jak Express lub Paszport (lub przynajmniej niektóre oprogramowanie Middleware Connect) na pewno będzie łatwiejsze w dłuższej perspektywie (jeśli twoja aplikacja rośnie), ale jeśli chcesz iść na trasę "ręczną", oto kilka punktów wyjścia:

  1. Parser Cookie: Nie chcesz wysłać szczegółów autorytetów z każdym wnioskiem jako parametru, więc będziesz chciał umieścić szczegóły sesji w pliku cookie. Możesz ustawić pliki cookie ręcznie za pomocą nagłówków lub z modułem węzła, które Starannie zawija API.

  2. Przechowywanie sesji: Można umieścić wszystkie "czas logowania, zapytania i dane ciepła" w plikach cookie, ale byłoby neater, aby właśnie wysłać identyfikator sesji w pliku cookie w każdym żądaniu i zapisz drugą stronę serwera danych w bazie danych. Opcje są Mongoose, Redis itp.

Ponieważ czytanie źródła jest bardzo edukacyjne, przejdź do przeczytania Connect's Cookieparatser i Cookiesessession. Nie jest to dużo kodu, a dokumenty API obejmują rzeczywiste źródło, więc bardzo łatwo się uczyć. Cieszyć się! :)

2
rdrey 30 lipiec 2012, 20:13

Z tego, jak wywołujesz to pytanie, wierzę, że napowietrzne z używania ekspresowych modułów (paszport lub podobny) jest najmniejszym z twoich zmartwień ;-)

Najpierw musisz dowiedzieć się, które mechanizmy, których chcesz użyć.

W przypadku uwierzytelniania, użyjesz kombinacji użytkownika / hasła, czy będziesz korzystać z usługi trzeciejszej, takie jak Google, Facebook, Twitter itp ("Oauth" jak)? Chyba że używasz niektórych usług trzecich, musisz również obsługiwać rejestrację (i ewentualnie weryfikację adresu e-mail itp.). Nawet dla kombinacji nazwy użytkownika / hasła, będziesz przewrócić własną lub użyć opartych na przeglądarce Mechanizmy "Basic-auth"?

Po uwierzytelnieniu potrzebny jest mechanizm sesji do przechowywania niektórych token sesji, aby rozpoznać (i weryfikować stronę serwera), którą zostałeś uwierzytelniony. Są one zazwyczaj przechowywane w plikach cookie przeglądarki, które można łatwo przetrwać tak długo, jak potrzebujesz i są weryfikowane z każdym odpowiednim żądaniem z żetonami w bazie danych po stronie serwera.

I wreszcie potrzebujesz mechanizmu wylogowania i procedurę "Zapomniałem hasła" (co może być bardzo dobrze podręcznika ...).

Jeśli wszystko to jest dość nowe dla ciebie, sugeruję próbę użycia czegoś gotowego wykonanego jako pierwszy (wspominając o paszporcie), a potem, kiedy opanowałeś podstawy, zapraszamy do zastąpienia własnym. "Upside" przy użyciu paszportu lub innegouth jest to, że pokrywa znacznie więcej opcji, które realistycznie będą mogli napisać sobie, więc po dostosowaniu systemu do korzystania z jednego z tych, dodawanie loginów na Facebooku i podobny będzie dużo łatwiej (ktoś już wymyślił większość rzeczy).

Być uczciwym, większość modułów, które obsługują takie rzeczy w ekosystemach węzła, są dość cienkie opakowania na górze dowolnego rozwiązania, które zdecydujesz się na użyć, więc napowietrzne będzie najprawdopodobniej nie będzie istotne i najprawdopodobniej potrzebujesz dobrego zrozumienia W każdym razie należy ich użyć. Na drugim końcu spektrum są gotowe systemy, takie jak Drupal itp., Wheli wszystko po prostu działa, ale wtedy jesteś nieco zapakowany tak daleko, jak tworzyć własny system.

Istnieją takie przypadki, w których toczenie własne od zarysowania jest absolutnie konieczne, ale nie ma nic zatrzymującego się od tego, kiedy / jeśli jest to konieczne (a po opanowaniu podstaw z pomocą Kodeksu, które napisali).

Powodzenia!

1
Marius Kjeldahl 30 lipiec 2012, 19:39