问题标签 [passport-local]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
260 浏览

node.js - NodeJS Passport 本地策略通知客户端用户已通过身份验证

我已经用本地护照和 MongoDB 实现了 Passport,它运行良好。

然而,这是一个纯粹的客户端单加载应用程序,因此节点不负责 html 的呈现。所以目前我在应用程序加载时显示了一个加载微调器,并单独调用一个 api 以确定用户是否登录以有条件地呈现一些东西:

由于护照已经验证了我的路线并调用deserializeUser这似乎毫无意义 - 我需要一种方法来传递一条额外的信息(在 cookie 中?),说明用户已通过身份验证,我猜deserializeUser

请注意,登录成功时创建的两个 cookie:

当它检测到这些 cookie 的存在时,它似乎只是调用,deserializeUser因此为什么我认为我可以与客户端进行通信,用户在那里进行了身份验证,或者在passport.use中间件内部登录?

0 投票
1 回答
1683 浏览

passport.js - 如何强制使用 Passport 进行身份验证

我已经实现了 2 条路线: app.post('/login', passport.authenticate....); app.get('/admin', myfunction);

如果用户第一次发帖登录,我将他重定向到 /admin。

如果用户直接去获取 /admin 怎么办?我如何确保除非他登录,否则不允许他访问 /admin 并被重定向到登录屏幕?

同样对于从应用程序访问的 API,如果用户未通过护照验证,我如何发送 401?

0 投票
1 回答
3597 浏览

express - 无法使用 nodejs 在 express + 护照中设置 cookie

在这里,我尝试在用户登录时选择记住 复选框时设置 cookie,但即使是 console.log("hello"); 不管用。

但我尝试使用 express.session 直接设置它工作正常,如下所示

0 投票
1 回答
1066 浏览

mysql - passportJS:使用名为 id 以外的用户 id 字段

我发现了这个很棒的节点 mysql 样板:

https://github.com/ocastillo/nodejs-mysql-boilerplate

效果很好!但是,现在我需要将它连接到我现有的用户表中,并且我的关键字段名为 userID,而不仅仅是 id,并且在 mysql 中更改关键字段名会破坏示例。所以我的问题是,我需要在项目的哪个位置指定不同的 id 字段名称?我在 /util/auth.js passport.serializeUser 中看到了 user.id,在 passport.deserializeUser 函数中看到了 id,但它似乎也必须在其他地方指定。我希望这对passportjs的用户来说是一个简单的问题!

0 投票
1 回答
3066 浏览

javascript - Passport throwing "undefined is not a function"

This is my first time using passport.

I keep getting this error when I try to launch my app:

Here's the (relevant) portions of app.js

/models/account.js

What am I missing?

0 投票
2 回答
9629 浏览

node.js - 使用 expressjs mongoose passport-local 修改密码

首先,我是法国人,我的英语不是很好,我尽力了:)

我使用 PassportJs、Mongoose 和 Expressjs (v3.x) 创建了本地身份验证。它完美地工作。当用户登录时,在 /account/ 空间中,我创建了一个表单来更改当前密码(3 个输入:pass、newpass、newpassconfirm)。但在那之后,我不知道如何处理......

我是否必须创建另一个护照 LocalStrategy 才能找到我的用户并调用在我的用户架构中声明的“setPassword”函数?我可以在不使用 passportjs 的情况下执行此操作吗?如果可能的话,我怎样才能让我的用户访问数据库?

这是我的身份验证代码。

我的 /login POST (/routes/user.js)

我的护照脚本 (/script/passport.js)

我的用户架构 (/models/db_Users.js)

我遇到问题的 /changepass POST (/routes/users.js)

如果您对我的应用程序的结构有疑问,可以在这里找到所有项目:https ://github.com/tibaldev/docu

谢谢你的帮助 !

0 投票
1 回答
5940 浏览

node.js - Passport-saml 实现

我试图让 Passport 与任何策略一起使用,但最终我想让它与 SAML 实现一起使用。现在看来,一旦调用该策略,它总是会失败。我想知道我的服务器处理程序链是否设置错误?

0 投票
1 回答
120 浏览

node.js - 节点js express4和passport js冗长登录

我正在使用带有护照 js 的 express 4 来处理用户身份验证。前端是 Angular JS。

我基本上面临两个问题:1-登录时间很长,登录最多需要 15 秒。2-登录后,如果我重新启动节点 js 服务器并刷新页面,即使我回到登录页面在浏览器中设置了 cookie。

这就是我在后端所拥有的

以下是登录路径:

在调试上面的代码时,我注意到代码到达时有很大的延迟

可能是什么问题呢???我究竟做错了什么?

提前致谢。

0 投票
1 回答
285 浏览

node.js - 理解 Passport.js - 篡改 serializedUser

我试图把我的头绕在passport.js上,并且确定我没有正确使用它。

特别是serializeUser()deserializeUser()功能。我的函数看起来类似于下面的两个。我本质上是将我的数据库推user._id送到会话中(我不喜欢这样做),并且可以使用 cookie 查看器在浏览器中轻松查看它。

因此,对于每个安全请求,我都会运行一个isAuthenticated()函数来检查用户是否使用 Passport 进行了身份验证,然后我使用反序列化的 ID 在req.user数据库上执行各种 CRUD 操作。

我想知道的是什么会阻止经过身份验证的用户在会话中用其他人的 user._id 替换他们自己的 user._id,并获得对不同用户的所有这些 CRUD db 操作的访问权限。

  • 护照是否有某种散列算法来检查序列化数据是否被篡改?
  • 我不应该将返回的 ID 用于我的数据库 CRUD 操作吗?
  • 还有另一种方法可以避免将 user._id 发送到浏览器吗?
0 投票
1 回答
5390 浏览

node.js - MongoDB缓慢的初始连接

我面临一个非常奇怪的情况,与 mongoDb 的初始连接大约需要 15 秒。我当前的设置如下:

  1. mongodb 在同一台机器上的 ubuntu 虚拟机中运行
  2. mongodb 是 2.6.1 版本
  3. 使用 brew 安装的 node.js 版本为 0.10.28

重新启动 nodemon 后,初始登录 POST 大约需要 15 秒

其他 POST 到同一路由而不重新启动服务器相对较快:

这让我感到困扰的原因是因为这个项目仍在开发中,nodemon 往往会重新启动很多,并且测试很痛苦。

我正在使用以下与数据库和身份验证相关的节点模块:

  1. “快递”:“~4.2.0”,
  2. “猫鼬”:“3.8.8”,
  3. “护照”:“0.2.0”,
  4. “护照本地”:“0.1.6”,
  5. “bcrypt”:“*”

这是我连接到 mongo 的方式:

任何帮助将不胜感激。

谢谢