护照和Node.JS结构
Passport and Node.JS Structure
我正在使用MEAN堆栈,并希望将Passport集成到其中。然而,我不完全确定我应该如何构建它。我最终想包括几个策略,但让我们从谷歌开始。
在我的routes.js文件中:
app.get('/auth/google', passport.authenticate('google'));
app.get('/auth/google/return', passport.authenticate('google', { successRedirect: '/',
failureRedirect: '/login' }));
有道理。但是,我应该把GoogleStrategy()构造函数/成功回调代码,在我的顶级服务器。js?假设我有5种不同的策略,它们应该都放进去吗?
对于我们的应用,我们创建了一个单独的passport.js
文件,其中包含我们所有的社交注册策略以及一个单独的路由文件,这是我们的Google的样子:
app.js
var social = require('./routes/social.js')
..
app.get('/auth/google', passport.authenticate('google'));
app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/signup', failureFlash: true}), social.googleCallback);
passport.js
(位于根)
var passport = require('passport'),
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy,
config = require('./config');
var socialAuth = config.socialAuth; //contains keys
module.exports = function(passport) {
/*DEFINE LOGIN STRATS HERE*/
//GOOGLE+
passport.use(new GoogleStrategy({
clientID: socialAuth.google.GOOGLE_CLIENT_ID,
clientSecret: socialAuth.google.GOOGLE_CLIENT_SECRET,
callbackURL: config.callbackDomain + "/auth/google/callback",
scope: 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email'
}, function(accessToken, refreshToken, profile, done) {
//code for strat here
return done(null, userDoc);
}
});
}
social.js
(route)
exports.googleCallback = function(req, res) {
//do stuff with the return from passport
}
它可以很好地管理你想要的每种策略,并且很容易添加。
相关文章:
- 如何将我的json结构转换为C3.js所需的列结构
- JS库支持各种数据结构?(如爪哇的番石榴)
- 使用angularjs和node.js时的Web应用程序文件夹结构
- 如何在js中实现树结构类型的表单动态填充
- Node JS,传统的数据结构?(如Set等),任何类似Java.util的node
- xml文件在js项目目录结构中的位置
- 文件结构:使用索引.js文件级联访问子模块或子文件
- 从d3.js中的csv创建树层次结构
- 下划线扩展方法和结构.js子类
- 如何使用结构 JS 实现对比度
- 文本框导致结构 JS 中的字体出现问题
- 如何使用 OnClick 事件更改结构 JS 的覆盖图像
- 当客户端是服务器时,使用 client-JS 读取文件结构
- 结构 JS:如何防止扩展活动组
- 从knockout.js中的另一个对象更新一个深度结构化的javascript对象
- 展平多个嵌套层次结构数组-d3.js
- img目录react.js的结构
- 我没有'我不理解js的结构
- 具有JS结构棘手的网站
- 护照和Node.JS结构