Node.js 需要CLIENTID的OAuth2Strategy出错

Node.js 需要CLIENTID的OAuth2Strategy出错,node.js,facebook,passport.js,google-authentication,clientid,Node.js,Facebook,Passport.js,Google Authentication,Clientid,我启动应用程序时出错: /api # yarn start yarn run v1.21.1 $ nodemon server-express.js [nodemon] 1.19.4 [nodemon] to restart at any time, enter `rs` [nodemon] watching dir(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node server-express

我启动应用程序时出错:

/api # yarn start
yarn run v1.21.1
$ nodemon server-express.js
[nodemon] 1.19.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server-express.js`
/api/node_modules/passport-oauth2/lib/strategy.js:86
  if (!options.clientID) { throw new TypeError('OAuth2Strategy requires a clientID option'); }
                           ^

TypeError: OAuth2Strategy requires a clientID option
    at Strategy.OAuth2Strategy (/api/node_modules/passport-oauth2/lib/strategy.js:86:34)
    at new Strategy (/api/node_modules/passport-google-oauth20/lib/strategy.js:52:18)
    at Object.<anonymous> (/api/helpers/authHelper.js:26:5)
    at Module._compile (internal/modules/cjs/loader.js:1139:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10)
    at Module.load (internal/modules/cjs/loader.js:988:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Module.require (internal/modules/cjs/loader.js:1028:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/api/server-express.js:13:23)
    at Module._compile (internal/modules/cjs/loader.js:1139:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10)
    at Module.load (internal/modules/cjs/loader.js:988:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47
[nodemon] app crashed - waiting for file changes before starting...

如何解决此问题?

您需要转到

您需要在此处设置应用程序。启用google api,然后搜索google+,然后按Enable api。然后创建api凭据。 一旦你完成了,你会得到客户和秘密

设置passport.js文件时,必须将这些凭据传递给google策略。为了安全起见,请将这些凭据放入应用程序中的其他文件并导入

module.exports = {
  googleClientID:
    "mygooogleclientIdHERE.apps.googleusercontent.com",
  googleClientSecret: "secretIdHERE"


};
在passport.js中

const keys = require("../config/keys.js");
const passport = require("passport");


passport.use(
  new GoogleStrategy(
    {
      clientID: keys.googleClientID,
      clientSecret: keys.googleClientSecret,
      callbackURL: "/auth/google/callback"
    },
    (accessToken, refreshToken, profile, done) => {
      //this is where you implement the communication between server and database

    }
  )
);
const keys = require("../config/keys.js");
const passport = require("passport");


passport.use(
  new GoogleStrategy(
    {
      clientID: keys.googleClientID,
      clientSecret: keys.googleClientSecret,
      callbackURL: "/auth/google/callback"
    },
    (accessToken, refreshToken, profile, done) => {
      //this is where you implement the communication between server and database

    }
  )
);