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
}
)
);