如何实现OAuth到我的Nodejs / Sails.js应用程序?

我有一个为我的客户端生成API的sails.js应用程序。 为了保证我的API,我需要实现OAuth2.0到我的帆应用程序。 我已经开始遵循这个教程: https : //www.npmjs.com/package/sails-generate-auth#requirements

但每当我试图提升服务器时,我都会遇到各种各样的错误。 我也不明白我在哪里我的凭据发送到服务器,并获得访问令牌。 我对Sails.js相当陌生,只是了解OAuth,无法find如何实现OAuth的适当指南。

我如何实现OAuth到我的应用程序? 请有详细的回答,以便我能充分理解。

更新:

好吧,所以我开始按照这个指南: https : //www.bearfruit.org/2014/07/21/tutorial-easy-authentication-for-sails-js-apps/ ,我想我得到了一切工作,因为它应该(?)当我注册一个帐户,它应该保存在数据库中的数据。 login也似乎正常工作但我不明白如何login后redirect到主页如何访问实际数据,如用户名和电子邮件地址? 我已经testing了邮递员login,当我login时,我得到一个cookie。 我想用它来做什么?

由sails -generate-auth生成的AuthController默认不会将用户详细信息添加到会话,所以您应该手动添加它,方法是将以下行添加到AuthController.js中的callback函数

req.session.user = user; 

这是如何callback看起来像线:

 callback: function (req, res) { function tryAgain (err) { // Only certain error messages are returned via req.flash('error', someError) // because we shouldn't expose internal authorization errors to the user. // We do return a generic error and the original request body. var flashError = req.flash('error')[0]; if (err && !flashError ) { req.flash('error', 'Error.Passport.Generic'); } else if (flashError) { req.flash('error', flashError); } req.flash('form', req.body); // If an error was thrown, redirect the user to the // login, register or disconnect action initiator view. // These views should take care of rendering the error messages. var action = req.param('action'); switch (action) { case 'register': res.redirect('/register'); break; case 'disconnect': res.redirect('back'); break; default: res.redirect('/login'); } } passport.callback(req, res, function (err, user, challenges, statuses) { if (err || !user) { return tryAgain(challenges); } req.login(user, function (err) { if (err) { return tryAgain(err); } // Mark the session as authenticated to work with default Sails sessionAuth.js policy req.session.authenticated = true; req.session.user = user; // Upon successful login, send the user to the homepage were req.user // will be available. res.redirect('/'); }); }); 

}

现在,您可以通过引用req.session.user来在任何控制器和视图中使用用户详细信息,例如,twitter提供了您的用户名,以便您可以使用req.session.user.username