Articles of passport.js

Node.js Passport在页面加载上获得Facebook会话

我有护照Facebook Strategy工作正常。 然而,阅读facebook文件,我偶然发现: FACEBOOK DOCS 使用查询string设置时需要特别注意的事项: 如果您想在App Center中使用服务器端身份validationstream程,请确保在交换访问令牌的代码时正确传递redirect_uri参数。 您应该将您的redirect_uri参数设置为您网站的点击后到达url。 在大多数情况下,URL将如下所示: http://www.example.com/?fb_appcenter=1&fb_source=search&code=CODE_HERE因此您应该将您的redirect_uri设置为相同的值。 请确保此逻辑是dynamic的,因为附加到您的点击后到达url的查询参数可能会更改。 在应用程序中心有一个visit websitebutton,将用户发送到应用程序,并在进程中login。我怎样才能做到这一点与护照? 我必须将查询string添加到callbackURL吗? 我猜这是同样的问题,但我也需要类似于facebook javascript SDK提供的FB.getLoginStatus()来链接用户,如果他们的facebook打开并且以前添加了该应用程序。 这一切是由passport提供的任何方式吗?

如何使用Android作为客户端访问express.js / passport.js API?

我正在尝试使用node.js和passport.js访问express.js api。 有些方法在req.use可用时正常工作。 我尝试从我的客户端应用程序loginFacebook和Twitter,我得到普通的cookie。 像connect.sid = jkbsdkjabdkjasdbjkadnaidiadiasdaoidoa 我用这个方法重新创build客户端cookie: BasicClientCookie clientCookie = new BasicClientCookie(Metadata.COOKIE_LOGIN, cookieValue); clientCookie.setDomain("www.domain.com"); clientCookie.setPath("/"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, 1); clientCookie.setExpiryDate(calendar.getTime()); return clientCookie; 之后,我用这个Json请求: HttpUriRequest request = method.createRequest(uri); request.addHeader("Accept", "application/json"); HttpProtocolParams.setContentCharset(params, HTTP.UTF_8); DefaultHttpClient client = new DefaultHttpClient(params); client.getCookieStore().addCookie(USER_SESSION_COOKIE); HttpResponse response = client.execute(request); String serializedJson = EntityUtils.toString(response.getEntity(), HTTP.UTF_8); T fromJson = gsonParser.fromJson(serializedJson, clazz); 像往常一样,我无法使用明确的路线方法。 […]

Node.js和Backbone.marionette初始视图

目前,我有一个Node.js应用程序用我的服务器端模板语言(在这种情况下,玉)服务我的静态/login & /index HTML页面。 我想成功的身份validation后,返回有关当前login用户的数据,以便骨干可以开始呈现内容。 例如,我在Mongo中有一个UserGroup文档,用于存储有关User信息以及他们属于哪个组(授权信息)。 使用护照,我可以validation我的用户,并将其redirect到主页面。 app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login', failureFlash: true }) ); redirect后,我怎么能发送有关骨干将在首次渲染的'/'骨干路由中拿起的用户的数据? 这将是res.send()即使它不是发起第一个请求的骨干,也不是使用关于用户的元数据的会话。

在node.js中良好的用户/组pipe理

需要在node.js中实现用户/组pipe理 那里有好的框架? 看了一下passport.js,这似乎有authentication下来。 只是不确定用户/组的东西是内置的。我可以build立自己的用户/组,并使用passport.js进行身份validation。 只是想知道是否有什么我不知道的东西。 谢谢!

无法获得护照/快递与LocalStrategy一起使用。 得到401

我以为我跟着文件,但我得到了一个401响应。 我有一个简单的POST表单,收到401响应。 这是我的示例代码(CASE 1): passport.serializeUser(function(user, done) { console.log("Serializing:", user); done(null, JSON.parse(user)); }); passport.deserializeUser(function(obj, done) { console.log("Deserializing:" + obj); done(null, obj); }); passport.use(new LocalStrategy( function(username, password, done) { console.log("Authenticating…..:" + username); User.findOne({ username: username }, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect username.' }); } […]

在使用PassportJS时将用户序列化/反序列化到会话中的目的?

在使用PassportJS时序列化/反序列化用户到会话中的目的是什么? 我之前和JSP一起工作,似乎没有这些东西的概念。

使用Node Express和Passport捕获锚链接/路由

许多JavaScript框架利用锚标签在SPA内build立路由。 是否有可能捕获锚路由保存在我的会话存储进行身份validation? 例如,利用快递和护照,我有: routes.js //node stuff above app.get('/', auth.savePath, pages.index); auth.js exports.savePath = function (req, res, next) { if (!req.isAuthenticated()) { req.session.returnPath = req.originalUrl return res.redirect('/login') } next() } req.originalUrl不捕获锚path,只有应用程序path和查询stringvariables – 任何想法? 我没有看到任何可以让我捕获这些信息的快速文档。

如何使用passportjs重置密码

我正在使用passportjs来validation用户,并使用bcrypt来存储密码。 以下代码重置我的盐字段,但不会更改散列字段。 UserSchema.update({ _id: mongoose.Types.ObjectId(req.user._id.toString()), }, { $set: { salt: req.body.newPassword } }, function(err, user) {…..} 任何机构可以帮助我如何重置散列字段?

通过Passport使用cookieSession

我想用Passport使用Cookie会话存储,因为内存存储不是为生产而devise的: Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. 这是我的Express初始化: app.use(express.bodyParser({keepExtensions:true})); app.use(express.cookieParser(cookieSecret)); app.use(express.cookieSession({ key: cookieKey, secret: cookieSecret, maxAge: sessionTimeout })); app.use(passport.initialize()); app.use(passport.session()); app.use(express.methodOverride()); app.use(express.static(__dirname + '/public')); 如果我将express.cookieSession更改为express.cookieSession ,一切正常。 使用cookieSession用户login成功时,用户在下次加载页面后不再login。 任何提示如何使护照与cookie会议工作? 我正在使用Express 3.0.0

护照 – 有没有办法在第一次authentication呼叫覆盖redirect?

我有一个非常奇怪的要求,我需要在一个iframe中执行身份validation。 大多数login提供程序显然会阻止其身份validation页面在iframe内部运行,所以唯一的方法是在包含iframe的页面上触发redirect。 要做到这一点,我正在寻找一种方法来覆盖passport.authenticate的行为,以便它将返回一个200状态和redirect的URL作为参数,从而允许它被调用的JavaScript代码,然后将使用响应redirect父页面。 所以,例如,我试图自定义Twitter授权: //Callback is not called since redirect is followed automatically app.get('/auth/twitter', passport.authenticate('twitter'), function(req, res) { //set status to 200 and return url as parameter instead //of performing redirect }); //This callback route is easier to customize since it //doesn't do any implicit redirects app.get('/auth/twitter/callback', passport.authenticate('twitter', { successRedirect: '/', failureRedirect: '/login' })); 我知道这是一个非常罕见的用例,但我只想知道是否有一种方法来configuration或重写此行为。 […]