TypeError: OAuth2Strategy需要一个clientID选项passport-google-oAuth


//jshint esversion:6
require('dotenv').config();
const express= require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require('mongoose');
const session = require('express-session');
const passport = require("passport");
const passportLocalMongoose = require("passport-local-mongoose")
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const findOrCreate = require('mongoose-findorcreate');
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,

clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: "http://localhost:3000/auth/google/secrets",
userProfileUrl:"https://www.googleapis.com/oauth2/v3/userinfo"
},
function(accessToken, refreshToken, profile, cb) {
User.findOrCreate({ googleId: profile.id }, function (err, user) {
return cb(err, user);
});
}
));
app.get('/auth/google',
passport.authenticate('google', { scope: ["profile"] })
);

这是我的全部代码安装的dotenv包并在。env文件中添加了我的clientID,但我得到了这个错误。我正在使用passport-google-OAuth20

我以前也遇到过同样的问题。

  1. 检查.env文件是否被全局初始化,即文件是否在根目录下,只需在根目录下创建.env文件,

Justconsole.log(process.env.GOOGLE_CLIENT_ID);

如果给出undefined,则表示文件不在正确的目录中,所以请更改目录。

如果它不工作,只是安装包再次npm install dotenv

你的问题就解决了。

相关内容

最新更新