Аз съм проектиране на моята система за удостоверяване на потребителя използванеNode.js / Express, и докато търсех в мрежата стратегии за удостоверяване, забелязах, че много разработчици препоръчват passport.js за помощ при удостоверяване.
Удостоверяването ми ще използва само aпотребителско име / парола стратегия с JSON уеб символи. При това предположение изглежда, че трябва да управлявам самото удостоверяване сама: проверявам потребителското име и паролата на базата данни и проверявам и прикачам JWT. Струва ми се, че паспортът само обвива работата ми в собствените си функции.
Само със стратегия за потребителско име и парола, каква е паспортът? Какво предлага Паспортът в този сценарий, който е от реална полза за мен, просто да извърша удостоверяване без него?
Отговори:
0 за отговор № 1Паспортът ви дава повече гъвкавост имащабируемост. Сега имате нужда от една конкретна стратегия, но в бъдеще можете да добавите допълнителни или да премахнете старата. Използвайки модули като паспорта, причините ви, че вашият код за кандидатстване е независим от някои процеси. Това е почти като инжектиране на зависимост, инжектирате стратегия в противоположност на хардкод това.
Това, че доброто приложение трябва да има колкото е възможно повече функции / модули, които дават възможност за инжектиране на политики / стратегии. Отделни модули също са nodejs / express style.
Ако кодирате удостоверяването си в същия стил, то е супер (но защо преоткривате колелото).
Използвайки паспорта, можете да наследявате от основната стратегия и да създадете нова така стриктно за вашите нужди и да я използвате с други стратегии.
0 за отговор № 2
Освен ако всъщност не искате да приложите a рамка и имате всички ресурси в света, за да направите това, всички необходими знания и ключови хора (като OWASP) и т.н.
Използвайте съществуващите lib за вашия проект
Използвайте библиотека или рамка, която е с отворен коди битката тествана. Да, няма да е перфектен и ще има ограничения. Да, това може да не е най-сигурният код. НО ще бъде много по-добре от твоя, особено ако започваш от нулата.
След това следвайте най-добрите практики за CSRF, XSS, DDoS и друг вид предотвратяване на атаки.