我正在使用带有Express 3的nodejs和适用于Google oauth的everyauth。

实现看起来像这样:

everyauth.google
/* snip */
.callbackPath('/loggedin');

var app = express();
app.configure(function(){
  /* snip */
  app.use(everyauth.middleware());
}

var server = https.createServer(sslOptions, app);
server.listen(app.get('port'), function(){
// ...
});


现在,当我转到google登录路径时,它说:


  请求中的重定向URI:http://localhost:4545/loggedin与注册的重定向URI不匹配


这是正确的,因为我只在google api控制台中添加了https URI。

请注意,我仅使用HTTPS(安全!),由于某种原因,Everyauth会将URL中的https替换为http。

我认为这可能是因为我在app.use(everyauth.middleware());语句之后创建了https服务器。但是我该如何重写代码,以便everyauth不会忽略https?

创建https服务器后,是否可以将app.use(everyauth.middleware());语句移动到某个地方?

提前致谢!

最佳答案

通过添加以下内容,我可以在Facebook auth上解决此问题:

everyauth.facebook.myHostname('https://www.example.com')

09-18 09:38