Tag: passport.js

类和接口来编写types化的模型和Mongoose在Typescript中使用明确的模式

我怎样才能使用types和接口来使用绝对的TypeScript来编写types化的模型和模式。 import mongoose = require("mongoose"); //how can I use a class for the schema and model so I can new up export interface IUser extends mongoose.Document { name: String; } export class UserSchema{ name: String; } var userSchema = new mongoose.Schema({ name: String }); export var User = mongoose.model<IUser>('user', userSchema);

护照js如何在会话中存储用户对象?

我正在使用节点/expression护照在我的发展。 我遇到一篇文章说: Express加载会话数据并将其附加到请求。 由于护照将序列化的用户存储在会话中,因此可以在req.session.passport.user中find序列化的用户对象。 但令我惊讶的是,浏览器cookie中sessionID存储的值在login前后保持不变。 那么序列化的用户对象存储在哪里呢? 我以为它最初存储在用户sessionid cookie中,但似乎并非如此,因为我仍然可以通过req.session.passport.user访问我的用户对象

在callback函数中,Passport-Facebook访问req对象

在Facebook上为nodejs护照authenticationcallback,你如何获得callback中的req对象? passport.use(new FacebookStrategy({ clientID: 123456789, clientSecret: 'SECRET', callbackURL: "http://example.com/login/facebook/callback" }, function(accessToken, refreshToken, profile, done){ // Is there any way to get the req object in here? } ));

nodejs +护照+快递3.0 +连接闪光灯不闪烁?

我正在使用护照本地策略来validation用户。 我遵循了Jared Hanson给出的指导,并安装了连接闪光灯,以便为req对象提供flash方法。 所以我的一个请求处理程序如下: app.post('/login', passport.authenticate('local', { successRedirect: '/' , failureRedirect: '/login' , successFlash: 'Bienvenido' , failureFlash: 'Credenciales no válidas' }) ); 当用户login失败时,它将用户redirect到/login,但不会闪烁任何内容:/ 更新:我使用mongodb会话存储,我看到这个: > db.sessions.find() { "_id" : "qZ2eiTnx6r9LR25JOz/TGhiJ", "session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":\"4ffb5b5db9cc16b615000001\"},\"flash\":{\"error\":[\"Credenciales no válidas\"],\"success\":[\"Bienvenido\"]}}" } 所以这些消息被插入到会话对象中,但是它们不被拉出。 我应该做一些特别的吗?

什么是更好的方式来validationExpress 4路由器上的一些路由?

我正在使用Express 4,我有一个由passport.js保护的路由,如下所示: var media = require('express').Router(); media.get('/', function(req, res) { // provide results from db }); media.post('/', passport.authenticate('bearer'), function(req, res) { // This route is auth protected }); 所以 – 收集路线应该(大部分)不应该保护我,并创build/更新路线应该。 但是这需要我把护照传给我所有的路由文件(到目前为止我已经有7个了),然后把它作为一个中间件添加到其中的一些文件中。 我喜欢这个版本,你可以这样做: var router = require('./my-router'); app.use('/api/route', passport.authenticate('bearer')); app.use('/api/route', router); 但是,这需要我的所有路线授权。 有没有更好的方法来通过护照一路?

node.jscallback中的“完成”和“下一个”之间的区别

在护照[configuration身份validation]文档中,它有一个相当吓人的function,使用神秘function“完成”。 passport.use(new LocalStrategy( function(username, password, done) { User.findOne({ username: username }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect username.' }); } if (!user.validPassword(password)) { return done(null, false, { message: 'Incorrect password.' }); } return done(null, user); }); } )); 现在,在快速文档中有相当多的方法可以传递下一个。 app.use(function(err, req, res, […]

简单的login页面在nodejs中使用快速和护照与mongodb

我在/ login中使用Jade和Express创build了一个简单的login表单,表单数据通过POST发送到/ login 起初它只是基于string的匹配(如果用户名== &&密码==)然后redirect到/ home或redirect到/login 简单。 现在我想把它的数据库驱动程序,用户名和密码存储在一个mongodb数据库,从数据库匹配用户名密码,并进行诉讼。 我希望为此使用passportJS,但是我完全感到震惊,从创build数据库到configuration护照。 有人可以帮助我如何做一个简单的数据库驱动的login页面? 我很新的nodejs的东西。 任何帮助将认真感激

Passport.js无法序列化用户

我只为Google,Facebook和Twitterlogin使用passport.js。 Node.js v0.8.19与express.js 3.1.0和passportjs版本0.1.16。 (护照 – 脸书-0.1.5,推特 – 0.1.4护照 – 眼睛 – 奥法 – 0.1.5) 一切运行正常,一小时左右的应用程序运行passport.js停止序列化用户进入req.user会话。 Facebook和谷歌正在从各自的API接收全部数据的含义 passport.use(new FacebookStrategy({ clientID: FACEBOOK_APP_ID, clientSecret: FACEBOOK_APP_SECRET, callbackURL: "http://localhost:3000/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { var temp = {} temp.name = profile.displayName temp.id = profile.id console.log(temp) return done(null, temp); })); 这里console.log将成功打印用户ID和名称,但是在调用之后 passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(obj, done) […]

Passport-Google-OAuth回拨不起作用

我有以下节点代码使用passport-google-oauth … app.get('/auth/google', passport.authenticate('google', { scope : ['profile', 'email'] })); app.get('/auth/google/callback', function(req,res) { console.log("callback"); passport.authenticate('google', { successRedirect : '/signin', failureRedirect : '/signin' }); }); 和… passport.serializeUser(function(user, done) { console.log("ser"); done(null, user.id); }); passport.deserializeUser(function(id, done) { console.log("des"); User.findById(id, function(err, user) { done(err, user); }); }); passport.use(new GoogleStrategy({ clientID : 'id', clientSecret : 'key', callbackURL : 'http://host/auth/google/callback', […]

Facebook与智威汤逊护照

我一直在我的服务器上使用Passport进行用户authentication。 当用户在本地login(使用用户名和密码)时,服务器发送一个存储在本地存储中的JWT,并在需要用户authentication的每个api调用中发送回服务器。 现在我想支持Facebook和Googlelogin 。 自从我开始使用Passport以来,我认为最好是继续使用Passport策略,使用passport-facebook和passport-google-oauth 。 我会提到Facebook,但是这两种策略都是一样的。 他们都需要redirect到服务器路由( '/ auth / facebook'和'/ auth / facebook / callback' )。 这个过程是成功的保存用户,包括他们的Facebook的\谷歌ID和令牌的数据库。 在服务器上创build用户时,会创build一个JWT(不需要依赖从facebook \ google收到的令牌)。 … // Passport facebook startegy var newUser = new User(); newUser.facebook = {}; newUser.facebook.id = profile.id; newUser.facebook.token = token; // token received from facebook newUser.facebook.name = profile.displayName; newUser.save(function(err) { if (err) throw err; […]