无法弄清楚使用FirebaseloginGithub

在我的主页上,我有一个链接如下:

<a href="/login">Login with Github</a> 

而在我的app.js我有以下几点:

 app.get('/login', function(req, res) { var ref = new Firebase('https://hrr-kitchen.firebaseio.com'); ref.authWithOAuthPopup('github', function(err, authData) { console.log('in authWithOAuthPopup'); if (err) { console.log(err.code); } else if (authData) { // user authenticated with GitHub console.log('User ID: ' + authData.uid); } }); }); 

我花了几个小时在网上search,我已经尝试了很多不同的东西,我的眼睛是狡猾的。 我想我可能需要从HTML调用一个函数,并把代码放在一个函数,我试图在这一点尝试,只是在服务器以外的JavaScript做,但我认为这是janky。

我是新来的firebase和expression,我只是无法弄清楚这一点。 请帮忙?

编辑:我已经能够通过更改我的HTML看起来像这样工作:

 <script type="text/javascript"> var ref = new Firebase('https://hrr-kitchen.firebaseio.com'); githubLogin = function () { login(function(err, authData) { var username = authData.github.username; }); }; var login = function(cb) { ref.authWithOAuthPopup('github', cb, { remember: "sessionOnly" }); }; </script> <button onclick="githubLogin();">Login with Github</button> 

但我真的想弄清楚如何正确expression! 谢谢!!

Firebase库中的身份validation方法仅适用于客户端。

如果您需要在服务器上进行身份validation,则应使用生成的令牌中的authWithCustomToken 。 Firebase文档详细介绍了如何生成令牌 。

真正的问题是,为什么你需要在服务器上使用GitHub进行身份validation? Firebase旨在完成客户端上几乎所有的开发工作。

我最终通过Firebase破坏了login并使用了passport-github。 谢谢您的帮助!