Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据用户使用的passport方法重定向_Javascript_Node.js_Express_Handlebars.js_Passport.js - Fatal编程技术网

Javascript 根据用户使用的passport方法重定向

Javascript 根据用户使用的passport方法重定向,javascript,node.js,express,handlebars.js,passport.js,Javascript,Node.js,Express,Handlebars.js,Passport.js,因此,我试图通过制作一个应用程序来学习expressjs和passportjs,在这个应用程序中,你可以创建一个帐户,并更改你的电子邮件、密码等。用户可以通过3种方式登录,谷歌、推特和本地 问题是: 如果用户在本地登录,我只想显示更改电子邮件和密码按钮。我试图通过检查车把中是否存在twitterId或google id来实现这一点,然后显示“更改电子邮件”按钮或显示一条消息,说明您无法更改电子邮件 这样做的问题是,您可以直接转到路由并提交一些数据。它没有通过,但我仍然想阻止页面 这是我尝试制作的

因此,我试图通过制作一个应用程序来学习expressjs和passportjs,在这个应用程序中,你可以创建一个帐户,并更改你的电子邮件、密码等。用户可以通过3种方式登录,谷歌、推特和本地

问题是:

如果用户在本地登录,我只想显示更改电子邮件和密码按钮。我试图通过检查车把中是否存在twitterId或google id来实现这一点,然后显示“更改电子邮件”按钮或显示一条消息,说明您无法更改电子邮件

这样做的问题是,您可以直接转到路由并提交一些数据。它没有通过,但我仍然想阻止页面

这是我尝试制作的中间件

ensureLocal: function (req, res, next) {
    if (twitterId || googleId) {
      console.log('worked????');
      res.redirect('/profile');
    } else {
      return next();
    }
  },
当我试着打开其中一页时,我得到:

"twitterId not defined" - auth.js:28 - //this error is caused by the middleware above.