Мне сложно понять, как работает метод аутентификации passjs, в частности с помощью стратегии HTTP-носителя.понимание метода аутентификации passjs
Итак, у меня есть два маршрута: один для регистрации и один для доступа к профилю пользователя, который проходит через промежуточное программное обеспечение passjs. Посмотрите на следующий код:
exports.register = function(req, res){
User.schema.statics.generateUserToken(function(t){
var user = new User({
token: t,
name: 'john doe',
});
user.save(function(e){
res.json(user)
});
});
};
Моя стратегия аутентификации выглядит следующим образом:
var mongoose = require('mongoose'),
passport = require('passport'),
BearerStrategy = require('passport-http-bearer').Strategy;
passport.use(new BearerStrategy(
function(token, done) {
User.findOne({ token: token }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
return done(null, user, { scope: 'read' });
});
}
));
как вы можете видеть, когда пользователь запрашивает регистрацию, мой сервер возвращает ему объект, с его который должен быть локально сохранен.
Затем, в защищенном маршрут, я добавил passportjs промежуточное программное обеспечение, как это:
app.get('/me', passport.authenticate('bearer', { session: false }), routes.me);
где я, очевидно, получить несанкционированный ошибку. Почему это «где паспорт.authenticate получить токен от моего клиента ?! Это действительно сбивает меня с толку и сводит меня с ума. Любая помощь?
Кроме того, это правильный способ разрешения авторизации? Или мне также нужны некоторые подробности, такие как timestamp, expires и т. Д.?