Ich erhalte immer eine Warnmeldung in meiner Konsole, wenn ich auf eine Route stoße, die eine Authentifizierung erfordert.Versprechen wurde erstellt, aber nicht zurückgegeben. Knex/Bookshelf
(node: 940) Hinweis: ein Versprechen, wurde in einem Handler erstellt bei xxxxxx \ app \ config \ passport.js: 15: 19, wurde aber nicht von ihr zurückkehrt, siehe http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it bei .fetch (xxxxxx \ node_modules \ drossel \ js \ release \ method.js: 13: 13)
ich Pass wie folgt konfiguriert haben:
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const secret = process.env.SECRET;
var opts = {}
function passportConfig(db, passport) {
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
opts.secretOrKey = secret;
passport.use(new JwtStrategy(opts, payloadCallback.bind(null, db)));
}
function payloadCallback(db, payload, done) {
new db.User({id: payload}).fetch()
.then(response => response.toJSON())
.then(user => done(null, user))
.catch(err => console.log(err));
}
module.exports = passportConfig;
Jede Hilfe würde geschätzt.
'payloadCallback' nichts –
@JaromandaX kehre ich dachte, dass wenn ich .then (user => fertig (null, Benutzer)), die gleich sagen .then (function (Benutzer) sein würde {return done (null, Benutzer)}). Ich habe es getestet, um sicher zu sein, und ich bekomme immer noch die gleiche Warnung. Auch wenn ich "return new db.User ....." verwende –
wo ist die '.fetch()' Funktion? –