Piszę prostą aplikację, używając pliku node.js i passport.js do uwierzytelniania.Uzyskiwanie dostępu do obiektu żądania w funkcji serializeUser w pliku passport.js
Czy mogę uzyskać dostęp do obiektu żądania w postaci serializeUser?
Piszę prostą aplikację, używając pliku node.js i passport.js do uwierzytelniania.Uzyskiwanie dostępu do obiektu żądania w funkcji serializeUser w pliku passport.js
Czy mogę uzyskać dostęp do obiektu żądania w postaci serializeUser?
To rzeczywiście dość prosta: req
dodaje się jako pierwszy parametr
passport.deserializeUser(function(req, id, done) {...
https://github.com/jaredhanson/passport/issues/111
Jeśli nie req.res.render('whatever'
to działa.
to jest poprawna odpowiedź –
myślę itr i laggingreflex pytania są nieco inaczej:
Aby odpowiedzieć itr:
Aby uzyskać dostęp do obiektu żądania trzeba zrobić wewnątrz wyraźnej warstwy pośredniej, która będzie zajmować się zezwolenia swojego zasobu.
function authMethod(req, res, next) {
if (req.isAuthenticated())
{
console.log(req.user);
return next();
}
res.status(401).send({user:undefined});
}
app.get('/',authMethod,function(req,response)
{
res.status(200).send("OK");
}
Jeśli zrobiłeś prawo konfiguracji Passaport dokona modyfikacji żądanie obiektu, dzięki czemu można uzyskać dostęp do informacji o użytkownikach z req.user
. Masz również metodę, req.isAuthenticated()
, aby sprawdzić, czy auth osoby trzeciej udało się.
Aby odpowiedzieć laggingreflex:
Nie można uzyskać dostępu do obiektu żądania wewnątrz passport.deserializeUser
i passport.serializeUser
ponieważ metody te są radzić sobie z serializacji informacji poufnych sesji użytkownika (Spójrz na github wyjaśnienia). Te metody otrzymują obiekt i funkcję jako parametry. Na serializeUser
pierwszym parametrem jest obiekt z informacjami o użytkowniku, który zostanie przekształcony do postaci szeregowej i przejdzie do funkcji done
(wywołanie zwrotne). Na deserializeUser
pierwszym parametrem jest obiekt, który został serializowany, że musisz wykonać operację odwrotną.
Chciałem zadać to pytanie. [Wydaje się, że istnieje już sposób, aby to zrobić teraz] (https://github.com/jaredhanson/passport/issues/111), ale niestety nie jestem tak dobrze zorientowany w paszporcie, aby zrozumieć, jak to działa. Czy ktoś mógłby proszę odpowiedzieć na to wyjaśnienie, w jaki sposób 'req' jest dostępny wewnątrz' passport.deserializeUser (funkcja (id, done) '? – laggingreflex