问题标签 [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.
node.js - NodeJS Passport 本地策略通知客户端用户已通过身份验证
我已经用本地护照和 MongoDB 实现了 Passport,它运行良好。
然而,这是一个纯粹的客户端单加载应用程序,因此节点不负责 html 的呈现。所以目前我在应用程序加载时显示了一个加载微调器,并单独调用一个 api 以确定用户是否登录以有条件地呈现一些东西:
由于护照已经验证了我的路线并调用deserializeUser
这似乎毫无意义 - 我需要一种方法来传递一条额外的信息(在 cookie 中?),说明用户已通过身份验证,我猜deserializeUser
?
请注意,登录成功时创建的两个 cookie:
当它检测到这些 cookie 的存在时,它似乎只是调用,deserializeUser
因此为什么我认为我可以与客户端进行通信,用户在那里进行了身份验证,或者在passport.use
中间件内部登录?
passport.js - 如何强制使用 Passport 进行身份验证
我已经实现了 2 条路线: app.post('/login', passport.authenticate....); app.get('/admin', myfunction);
如果用户第一次发帖登录,我将他重定向到 /admin。
如果用户直接去获取 /admin 怎么办?我如何确保除非他登录,否则不允许他访问 /admin 并被重定向到登录屏幕?
同样对于从应用程序访问的 API,如果用户未通过护照验证,我如何发送 401?
express - 无法使用 nodejs 在 express + 护照中设置 cookie
在这里,我尝试在用户登录时选择记住 复选框时设置 cookie,但即使是 console.log("hello"); 不管用。
但我尝试使用 express.session 直接设置它工作正常,如下所示
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的用户来说是一个简单的问题!
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?
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
谢谢你的帮助 !
node.js - Passport-saml 实现
我试图让 Passport 与任何策略一起使用,但最终我想让它与 SAML 实现一起使用。现在看来,一旦调用该策略,它总是会失败。我想知道我的服务器处理程序链是否设置错误?
node.js - 节点js express4和passport js冗长登录
我正在使用带有护照 js 的 express 4 来处理用户身份验证。前端是 Angular JS。
我基本上面临两个问题:1-登录时间很长,登录最多需要 15 秒。2-登录后,如果我重新启动节点 js 服务器并刷新页面,即使我回到登录页面在浏览器中设置了 cookie。
这就是我在后端所拥有的
以下是登录路径:
在调试上面的代码时,我注意到代码到达时有很大的延迟
可能是什么问题呢???我究竟做错了什么?
提前致谢。
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 发送到浏览器吗?
node.js - MongoDB缓慢的初始连接
我面临一个非常奇怪的情况,与 mongoDb 的初始连接大约需要 15 秒。我当前的设置如下:
- mongodb 在同一台机器上的 ubuntu 虚拟机中运行
- mongodb 是 2.6.1 版本
- 使用 brew 安装的 node.js 版本为 0.10.28
重新启动 nodemon 后,初始登录 POST 大约需要 15 秒
其他 POST 到同一路由而不重新启动服务器相对较快:
这让我感到困扰的原因是因为这个项目仍在开发中,nodemon 往往会重新启动很多,并且测试很痛苦。
我正在使用以下与数据库和身份验证相关的节点模块:
- “快递”:“~4.2.0”,
- “猫鼬”:“3.8.8”,
- “护照”:“0.2.0”,
- “护照本地”:“0.1.6”,
- “bcrypt”:“*”
这是我连接到 mongo 的方式:
任何帮助将不胜感激。
谢谢