1

我在这里想念什么?我已经浏览了这里的所有线程并用谷歌搜索了一段时间:

  • 在应用程序高级设置下将我机器的 IP 列入白名单。
  • 仔细检查了令牌,当它过期时,我可以在控制台上看到该错误。
  • 应用程序中的双重检查客户端 + 秘密 + 来源
  • 使用 google oauth 令牌尝试了一些事情,但我得到了预期的“未经授权”。

但是当一切都好并且我从邮递员或从我的前端发送一个带有该好令牌的请求时,我得到内部服务器错误,告诉我用户未在该行定义。我错过了什么?

路线代码:

app.get(
  '/user',
  passport.authenticate('facebook-token', { session: false }),
  function(req, res) {
    res.send('SUCCESS');
  }
);

没有导入的所有其他代码:

app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
  new FacebookTokenStrategy(
    {
      clientID: config.get('facebook.clientID'),
      clientSecret: config.get('facebook.clientSecret')
    },
    function(accessToken, refreshToken, profile, done) {
      User.findOrCreate({ facebookId: profile.id }, function(error, user) {
        return done(error, user);
      });
    }
  )
);

我正在完全按照文档中的方式导入 npm 包:

const FacebookTokenStrategy = require('passport-facebook-token');

我对此一无所知。

4

1 回答 1

2
app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
  new FacebookTokenStrategy(
    {
      clientID: config.get('facebook.clientID'),
      clientSecret: config.get('facebook.clientSecret')
    },
    function(accessToken, refreshToken, profile, done) {
      return done(null, profile);
    }
  )
);

尝试这个

于 2019-03-15T10:05:30.843 回答