Войти с 3-мя полями (не только имя пользователя и пароль), используя паспорт - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу создать форму входа в систему с 3 полями, вот форма:

<div class="container-login">
    <img src="/img/logo.jpg" class="logo-login">
    <form action="/login" method="POST" class="form-login">
        <label for="username">Nume utilizator:</label>
        <input type="text" name="username" id="username-login" placeholder="nume utilizator"><br/>
        <label for="password">Parola:</label>
        <input type="password" name="password" id="password-login" placeholder="parola"><br/>
        <label for="region">Regiune:</label>
        <select name="regiuni" id="region-login">
            <optgroup label="Regiunea 1">
                <option value="10">Judet 1</option>
                <option value="11">Judet 2</option>
                <option value="12">Judet 3</option>
            </optgroup>
            <optgroup label="Regiunea 2">
                    <option value="13">Judet 4</option>
                    <option value="14">Judet 5</option>
                    <option value="15">Judet 6</option>
            </optgroup>
            <optgroup label="Regiunea 3">
                    <option value="16">Judet 7</option>
                    <option value="17">Judet 8</option>
                    <option value="18">Judet 9</option>
            </optgroup>
        </select><br/>
        <button class="trimite-login">Trimite</button><br/>
    </form>
</div>

Я использую node & express & passport, passport-local, passport-local-mongoose + mongodb.Я не знаю, как мне отредактировать свой маршрут входа в систему, потому что в документации вход по паспорту выглядит так:

router.post("/login", passport.authenticate("local", {
    successRedirect: "/register",
    failureRedirect: "/login"
}));

У меня есть идея, но она кажется слишком сложной, поэтому я не думаю, что это будет правильно.Должен ли я использовать запрос поиска, чтобы найти пользователя в БД, а затем использовать другой поиск, чтобы проверить регион в его свойствах?Затем, если он существует, используйте passport.authenticate для аутентификации пользователя.

Если это лучший способ (в чем я сомневаюсь), как бы я это сделал?Могу ли я вложить passport.authenticate в другую функцию обратного вызова?

Итак, я спрашиваю, верна ли моя идея.Если да, то как мне написать это, и если это не даст мне другую идею о том, как это сделать, и я постараюсь сделать это сам.

Большое спасибо!

...