библиотеки аутентификации пользователя для node.js? - PullRequest
271 голосов
/ 17 августа 2010

Существуют ли какие-либо библиотеки аутентификации пользователя для node.js? В частности, я ищу что-то, что может выполнить аутентификацию по паролю для пользователя (с использованием пользовательской базы данных с аутентификацией внутреннего интерфейса) и связать этого пользователя с сеансом.

Прежде чем я написал библиотеку аутентификации, я подумал, что я посмотрю, знают ли люди о существующих библиотеках. Не удалось найти ничего очевидного через поиск в Google.

-Shreyas

Ответы [ 12 ]

1 голос
/ 11 марта 2014

Быстрый простой пример использования mongo для API, который обеспечивает аутентификацию пользователя, например Angular client

в app.js

var express = require('express');
var MongoStore = require('connect-mongo')(express);

// ...

app.use(express.cookieParser());
// obviously change db settings to suit
app.use(express.session({
    secret: 'blah1234',
    store: new MongoStore({
        db: 'dbname',
        host: 'localhost',
        port: 27017
    })
}));

app.use(app.router);

для вашего маршрута, примерно так:

// (mongo connection stuff)

exports.login = function(req, res) {

    var email = req.body.email;
    // use bcrypt in production for password hashing
    var password = req.body.password;

    db.collection('users', function(err, collection) {
        collection.findOne({'email': email, 'password': password}, function(err, user) {
            if (err) {
                res.send(500);
            } else {
                if(user !== null) {
                    req.session.user = user;
                    res.send(200);
                } else {
                    res.send(401);
                }
            }
        });
    });
};

Тогда в ваших маршрутах, требующих аутентификации, вы можете просто проверить сеанс пользователя:

if (!req.session.user) {
    res.send(403);
}
0 голосов
/ 22 августа 2016

Вот новая библиотека аутентификации, которая использует метки времени. Токены могут быть отправлены пользователям по электронной почте или в виде текстовых сообщений без необходимости сохранять их в базе данных. Он может использоваться для аутентификации без пароля или для двухфакторной аутентификации.

https://github.com/vote539/easy-no-password

Раскрытие информации: я разработчик этой библиотеки.

...