2

sein Ich verwende Node.js und passport facebook strategy Client App anmelden.Passfacebook Strategie throw Daten müssen Zeichenfolge mit Node.js

Ich folgte den Passdokument aber immer noch einen Fehler: Daten müssen eine Zeichenfolge oder ein Puffer sein.

Strategie leitet auf Facebook-Seite sehr gut, aber nach dem Test akzeptiert Bedingungen der App und leitet es automatisch zur Startseite der App diesen Fehler werfen:

StatusCodeError: 500 - {"error":"Data must be a string or a buffer"}

Das ist mein Code aus auth.js ist, wo Strategie geschrieben wird. Ich verwende jsonwebtoken Modul, um Benutzer-ID zu signieren.

exports.facebookStrategy = new FacebookStrategy({ 
    clientID: config.auth.facebook.clientID, 
    clientSecret: config.auth.facebook.clientSecret, 
    callbackURL: config.auth.facebook.callbackURL, 
    profileFields: ['id', 'displayName', 'email'] 
}, function (accessToken, refreshToken, profile, done) { 
    var userProfile = { 
     username: profile._json.id, 
     name: profile._json.name, 
     email: profile._json.email, 
     facebook: true 
    } 
    findOrCreate(userProfile, (err, user) => { 
     if (err) { 
      return done(err); 
     } 
     // use token lib to sign id 
     jwt.sign({ userId: user.username }, config.secret, {}, (e, token) => { 
      if (e) { 
       return done(e); 
      } 
      user.token = token; 
      return done(null, user); 
     }) 
    }); 

    function findOrCreate (user, callback) { 
     client.getUser(user.username, (err, usr) => { 
      if (err) { 
       return client.saveUser(user, callback); 
      } 
      callback(null, usr); 
     }) 
    } 
}); 

Mit einem console.log dachte ich, dass Fehler aus diesem Code-Block kommt aus:

... 
findOrCreate(userProfile, (err, user) => { 
    if (err) { 
     console.log(err.message); // it returns 500 - {"error":"Data must be a string or a buffer"} 
     return done(err); 
    } 

ich profile._json-profile._raw zu ändern versucht. Alle Werte sind jedoch undefined.

Ich verwende Knoten 6.10.0 Version. und passport: "^0.3.2", "passport-facebook": "^2.1.1".

Wie kann ich lösen diesen Fehler?

Antwort

0

Dieser Fehler ocurr, wenn die Funktion Passwort verschlüsselten der Parameter null ist. Am Beispiel:

const Krypto = erfordern ('Krypto')

lassen shasum = crypto.createHash ('sha256') shasum.update (Passwort) // Passwort ist null

Diese Authentifizierungsmethode ist kein Passwort erforderlich, müssen Sie eine Bedingung codieren, um die Verschlüsselung zu verhindern.

Verwandte Themen