throw new TypeError('OAuth2Strategy 需要 clientID 选项'); }

ADD*_*ADD 11 node.js socket.io

这是出现的错误,该怎么办。我创建了一个 socket.io 聊天应用程序。

这是一个使用 nodejs.socket.io 和 package.json 的聊天应用程序 -

包.json

"dependencies": {
    "body-parser": "~1.15.1",
    "connect-flash": "^0.1.1",
    "connect-mongo": "^1.3.2",
    "cookie-parser": "^1.4.3",
    "debug": "~2.3.2",
    "escape-html": "^1.0.3",
    "express": "~4.14.0",
    "express-session": "^1.14.2",
    "hbs": "~4.0.0",
    "mongoose": "^4.6.8",
    "morgan": "~1.7.0",
    "passport": "^0.3.2",
    "passport-facebook": "^2.1.1",
    "passport.socketio": "^3.7.0",
    "serve-favicon": "~2.3.0",
    "shortid": "^2.2.6",
    "socket.io": "^1.5.1",
    "twemoji": "^2.2.0"
  },
  "devDependencies": {
    "babel-preset-es2015": "^6.18.0",
    "gulp": "^3.9.1",
    "gulp-autoprefixer": "^3.1.1",
    "gulp-babel": "^6.1.2",
    "gulp-clean-css": "^2.0.13",
    "gulp-htmlmin": "^3.0.0",
    "gulp-imagemin": "^3.1.1",
    "gulp-sass": "*",
    "gulp-uglify": "^2.0.0"
  }
}
Run Code Online (Sandbox Code Playgroud)
C:\Users\AAKASH\Desktop\Follower-Github\Chat-app-all-F-2\Babble-master\B
abble-master\node_modules\passport-oauth2\lib\strategy.js:82            
  if (!options.clientID) { throw new TypeError('OAuth2Strategy requires 
a clientID option'); }                                                  
                           ^                                            

TypeError: OAuth2Strategy requires a clientID option                    
    at Strategy.OAuth2Strategy (C:\Users\AAKASH\Desktop\Follower-Github\
Chat-app-all-F-2\Babble-master\Babble-master\node_modules\passport-oauth
2\lib\strategy.js:82:34)                                                
    at new Strategy (C:\Users\AAKASH\Desktop\Follower-Github\Chat-app-al
l-F-2\Babble-master\Babble-master\node_modules\passport-facebook\lib\str
ategy.js:54:18)                                                         
    at Object.<anonymous> (C:\Users\AAKASH\Desktop\Follower-Github\Chat-
app-all-F-2\Babble-master\Babble-master\config\passport.js:11:14)       
    at Module._compile (module.js:660:30)                               
    at Object.Module._extensions..js (module.js:671:10)                 
    at Module.load (module.js:573:32)                                   
    at tryModuleLoad (module.js:513:12)                                 
    at Function.Module._load (module.js:505:3)                          
    at Module.require (module.js:604:17)                                
    at require (internal/module.js:11:18)                               
    at Object.<anonymous> (C:\Users\AAKASH\Desktop\Follower-Github\Chat-
app-all-F-2\Babble-master\Babble-master\routes\index.js:9:14)           
    at Module._compile (module.js:660:30)                               
    at Object.Module._extensions..js (module.js:671:10)                 
    at Module.load (module.js:573:32)                                   
    at tryModuleLoad (module.js:513:12)                                 
    at Function.Module._load (module.js:505:3)                          
    at Module.require (module.js:604:17)                                
    at require (internal/module.js:11:18)                               
    at Object.<anonymous> (C:\Users\AAKASH\Desktop\Follower-Github\Chat-
app-all-F-2\Babble-master\Babble-master\app.js:23:16)                   
    at Module._compile (module.js:660:30)                               
    at Object.Module._extensions..js (module.js:671:10)                 
    at Module.load (module.js:573:32)                                   
npm ERR! code ELIFECYCLE                                                
npm ERR! errno 1                                                        
npm ERR! babble@0.1.0 start: `node ./bin/www`                           
npm ERR! Exit status 1                                                  
npm ERR!                                                                
npm ERR! Failed at the babble@0.1.0 start script.                       
npm ERR! This is probably not a problem with npm. There is likely additi
onal logging output above.                                              

npm ERR! A complete log of this run can be found in:                    
npm ERR!     C:\Users\AAKASH\AppData\Roaming\npm-cache\_logs\2018-06-08T
03_18_29_207Z-debug.log                                                 
Run Code Online (Sandbox Code Playgroud)

下面是没有用的......
这是错误来做什么。我创建了一个socket.io聊天应用程序。这是一个使用nodejs.socket.io 和package.json 的聊天应用程序这是出现错误该怎么办。我创建了一个socket.io 聊天应用程序。这是一个使用nodejs.socket.io 和package.json 的聊天应用程序这是出现错误该怎么办。我创建了一个socket.io 聊天应用程序。这是一个使用 nodejs.socket.io 和 package.json 的聊天应用程序

小智 18

最近,我遇到了同样的问题,后来我意识到我忘记了需要 .env 配置。

错误

TypeError: OAuth2Strategy requires a clientID option
Run Code Online (Sandbox Code Playgroud)

使固定

npm i dotenv
Run Code Online (Sandbox Code Playgroud)

然后在文件顶部需要它

require(dotenv).config()
Run Code Online (Sandbox Code Playgroud)

造成此问题的原因是您的服务器不知道它必须使用环境变量。


Niy*_*abo 7

我昨天也有同样的错误。错误是

TypeError: OAuth2Strategy requires a clientID option
Run Code Online (Sandbox Code Playgroud)

我将客户端 ID 重命名为clientID而不是clientId

passport.use(new FacebookStrategy({
  clientID: FACEBOOK_CLIENT_ID,       // previously was           clientId
  clientSecret: FACEBOOK_CLIENT_SECRET,
  callbackURL: FACEBOOK_CALLBACK_URL,
  profileFields: ['id', 'email', 'first_name', 'last_name'],
},
  UserControllers.facebookCallback,
));
Run Code Online (Sandbox Code Playgroud)


小智 0

你的依赖没有帮助。您需要在创建 Passport Facebook 策略对象的位置发布代码。(我会 XXXX 出您的个人代码/密钥/ClientId)

我刚才也确实遇到了这个错误,这就是我在这里讨论这个问题的原因。我解决了我的问题,它可能会帮助您了解我的问题是如何出现的。

将安全代码/密钥/任何内容放在暴露在外的源代码存储库中是非常糟糕的做法。最好的做法是保留包含代码的文件,并将其包含在构建中作为参考,并使用其中的密钥,但不将其签入存储库,而是手动将其从开发计算机复制到计算机。在更大的环境中,您可能只是将其放置在公共网络驱动器上。或者更有可能将其放在未托管的源代码存储库中。

就我而言,我从我的主要开发计算机(笔记本电脑)跳到了速度更快的台式机。我已经好几个月没有出现在桌面上了,只是简单地检查了一下然后编译/运行。我收到这个错误。我忘记复制密钥文件来运行开发。(有趣的是,我绝对可以运行构建并推送到实时服务器,因为它在服务器上的产品密钥文件上运行。)

如果这不是您的具体情况,那么您需要发布您的代码(如果您愿意,请随时私信我)或查看您的代码以了解您如何制定 FacebookStrategy 以及您的问题所在。您可能只是忘记在通话中包含您的 Facebook ClientID。

干杯,祝你好运!