Node.js 页面显示';空';认证后

Node.js 页面显示';空';认证后,node.js,express,passport.js,Node.js,Express,Passport.js,我正在创建一个简单的PWA,将多个数据源引入到一个应用程序中。我目前正在尝试结合使用passport和twitter策略来设置身份验证 用户成功验证其帐户后,twitter将重定向到回调端点,并使用有效的用户数据。。。。从本质上讲,auth是成功的。但是,当将用户发送回客户端应用程序时,会显示一个带有null的html文档,而不是应用程序 使用以下代码,我希望: Twitter将返回回调URL 要在authsucture功能中执行操作的服务器 重定向到客户端上提供的url routes.js通

我正在创建一个简单的PWA,将多个数据源引入到一个应用程序中。我目前正在尝试结合使用passport和twitter策略来设置身份验证

用户成功验证其帐户后,twitter将重定向到回调端点,并使用有效的用户数据。。。。从本质上讲,auth是成功的。但是,当将用户发送回客户端应用程序时,会显示一个带有null的html文档,而不是应用程序

使用以下代码,我希望:

  • Twitter将返回回调URL
  • 要在
    authsucture
    功能中执行操作的服务器
  • 重定向到客户端上提供的url
  • routes.js
    通过catch-all路由为应用程序外壳提供服务器
  • 用于引导和处理所服务URL的客户端应用程序
目前,只有前两个步骤是成功的,应用程序只显示null(地址栏中有正确的url),而不是预期的输出。将
writeHead()
调用的位置更改为
/
有效,用户将按预期进行身份验证()

routes.js

userController.js

非常感谢您的帮助。如果您需要更多代码,只需询问:)


谢谢

您是否尝试过本教程:?“这应该对你有帮助,我在很多个月前就这样做了,”雅克西。更改代码以更紧密地匹配教程没有任何区别。用户正在成功进行身份验证,我无法以所需的URL返回客户端。如果我没有错,您是否在您的Twitter应用设置中在线设置了回调URL?这可能是问题所在。您是否尝试过本教程:?“这应该对你有帮助,我在很多个月前就这样做了,”雅克西。更改代码以更紧密地匹配教程没有任何区别。用户正在成功进行身份验证,我无法以所需的URL返回客户端。如果我没有错,您是否在您的Twitter应用设置中在线设置了回调URL?这可能是问题所在
let users = require('../controllers/userController');

app.get('/user/auth/twitter/callback',
  passport.authenticate('twitter', {
    failWithError: true
  }),
  function(req, res) {
    console.log('[Twitter] Auth success route hit');
    users.authSuccess(req, res);
  },
  function(err, req, res, next) {
    console.log('[Twitter] Auth failure route hit');
    users.authFailure(err, req, res, next);
  }
);

app.get('*', function(req, res){
   console.log('[Route] Catch All: ' + req.path);
   res.sendFile(path.resolve(__dirname, '../../public/index.html'));
});
authSuccess(req, res) {
  console.log('[User Controller] User',req.user);

  // Set some cookies here

  res.writeHead(302, {'Location': '/user/profile'});
  // res.redirect('/user/profile');
  res.end();
}