User Authentication in NodeJS Using Passport and MongoDB

Ако желите да заштитите осетљив садржај у апликацији чвора, потребан вам је начин за аутентификацију корисника. Међутим, изградња сопственог система за аутентификацију је сложена и дуготрајна и може довести до сигурносних пропуста у вашој апликацији ако се не уради исправно. Алати трећих страна као што је Пасспорт олакшавају аутентификацију.

У овом водичу ћете научити како да имплементирате аутентификацију у Ноде користећи Пасспорт и МонгоДБ.

Шта су аутентификација и ауторизација?

Док се аутентификација и ауторизација понекад користе наизменично, ова два безбедносна концепта имају различита значења. Аутентификација је процес верификације корисника за кога тврде да јесте, док је ауторизација процес утврђивања да ли аутентификовани корисник има приступ одређеним деловима ваше апликације.

Шта је Пасспорт.јс?

Пасспорт.јс (или Пасспорт) је међуверзија за аутентификацију за НодеЈС која пружа преко 500 стратегија за аутентификацију корисника, укључујући пасош-лоцал који користи корисничко име и лозинку.

Овај водич користи пасспорт-лоцал и пасспорт-јвт за сигурне руте.

Како подесити аутентификацију корисника у НодеЈС-у

Сада када знате нешто о аутентификацији корисника и Пасспорт.јс, можемо да видимо како да подесимо аутентификацију на НодеЈС. У наставку смо навели кораке које треба да предузмете.

Корак 1: Подесите сервер чворова

Креирајте фасциклу под називом усер-аутх-нодејс и идите до ње користећи свој терминал.

Корак 2: Подесите базу података

Потребна вам је база података за чување корисничких података. Користили бисте монгоосе да креирате МонгоДБ шему података која дефинише структуру и тип података које чувате у бази података. Пошто чувате корисничке податке, креирајте корисничку шему.

Пре чувања лозинке, морате је шифровати из безбедносних разлога. Користили бисте бцриптјс, веома користан нпм пакет који олакшава рад са шифрованим лозинкама.

Овде користите закачицу за претходно чување да бисте изменили лозинку пре него што је сачувате. Идеја је да се складишти хеширана верзија лозинке уместо лозинке обичног текста. Хеш је дугачак сложен стринг генерисан из низа обичног текста.

Користите исМодифиед да проверите да ли се лозинка мења јер је потребно само да хеширате нове лозинке. Затим генеришете со и проследите је заједно са лозинком за обичан текст хеш методи да бисте генерисали хеширану лозинку. На крају, замените лозинку отвореног текста хешираном лозинком у бази података.

Корак 3: Подесите пасош

Инсталирајте пасош и пасош-локални. Ове пакете ћете користити за регистрацију и пријаву корисника.

У горњем коду проверавате да ли је е-пошта већ у употреби. Ако имејл не постоји, региструјте корисника. Имајте на уму да такође подешавате поље корисничког имена да прихвата е-пошту. Подразумевано, пасспорт-лоцал очекује корисничко име, тако да ћете морати да наведете да уместо тога прослеђујете е-пошту.

Овде проверите да ли корисник постоји у бази података, а ако постоји, проверите да ли се наведена лозинка поклапа са лозинком која се налази у бази података. Имајте на уму да такође позивате метод матцхПассворд() на моделу Усер, па идите на датотеку усерМодел.јс и додајте је.

Овај метод упоређује корисника и лозинку у бази података и враћа тачно ако се подударају.

Корак 4: Подесите руту за аутентификацију

Сада морате да креирате крајњу тачку на коју ће корисници слати податке. Прво је пут за регистрацију који ће прихватити е-пошту и лозинку новог корисника.

У Апп.јс, користите међуверски софтвер ПасспортАутхентицатион који сте управо креирали да региструјете корисника.

Корак 5: Додајте заштићене руте

До сада сте користили Пасспорт за креирање међувера који региструје корисника у бази података и другог који дозвољава регистрованом кориснику да се пријави. Затим ћете креирати средњи софтвер за ауторизацију да бисте заштитили осетљиве руте помоћу ЈСОН веб токена (ЈВТ) .

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top