问题标签 [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 - 使用sails-generate-auth 对现有模型进行本地身份验证?
我想将sailsJS与现有数据库一起使用。
该数据库已经包含一个用户表(名为caver),并且已经有电子邮件、用户名和密码(名为contact、login、password)。
我无法更改此数据库的架构!
我目前正在尝试使用sails-generate-auth来设置本地身份验证。
是否可以将护照身份验证与不是自动创建的模型(用户)的现有模型(Caver)链接?
我可以将自定义哈希函数(用于我当前数据库中的密码的那个)与由sails-generate-auth创建的护照服务一起使用吗?
我已经成功地使用以下代码进行身份验证,但现在我想改用sails-generate-auth。
api/services/passport.js(不使用sails-generate-auth):
javascript - Express4 和护照:无法验证
我正在学习 javascript 和 node.js。如您所知,任何节点应用程序最重要的部分之一是登录模块,因此我开始使用护照和本地护照,但我无法理解护照的身份验证方式。我对护照认证过程的理解如下:
- 对 /login 路由的发布请求会调用 async passport.authenticate 调用。
- 这个 passport.authenticate 以“策略”为参数
- 调用此策略,它返回另一个“完成”异步调用(在我的情况下)没有错误和用户对象
- 在“完成”调用之后,调用 serializeUser 并将页面重定向到 /admin
- 如果有任何后续请求或调用任何具有 isAuthenticated 钩子的 url,则 passport.initialize 会检查 req.passport.user 对象是否为空。
- 如果它为空,则再次重复验证过程。
- 如果不是,则 passport.session 调用 passport.deserializeUser 创建 req.user 对象
我的问题如下:
在“登录”策略中,这三个永远不会被记录:
console.log('使用护照!'); console.log(req.body.username); console.log(req.body.password);
那么这是否意味着我的“登录”策略永远不会被调用?
- 同样,从不调用 serializeUser 和 deserializeUser 中的 console.logs。所以这些函数也没有被调用?
如果我对护照库的理解是正确的,我是否缺少任何要调用的函数?
谢谢
node.js - 多个服务器上的 NodeJS + Passport + 会话
我的项目需要使用我在主服务器上输入的相同护照会话(登录名 + 密码)。该会话必须用于自动将我连接到另一台服务器(当我单击链接时)。
示例:我登录到我的主服务器,我有一个所有其他服务器主机名的链接列表。当我点击一个链接时,我必须自动登录。
我找到了这些解决方案,但我不明白它是如何工作的。我必须对其他服务器做什么才能捕获主服务器提供的护照会话并自动连接我?
node.js - 使用 express 或sails.js 从所有设备上注销用户
我正在使用sails.js、connect-redis 和passport 进行身份验证流程。但我无法从所有设备上注销用户。我试图在 connect-redis 和 passport 上查找文档,但没有这样的选项。任何信息都会很棒。
node.js - Node.js / Express:POST 变成 GET(代码 302)
简而言之,我有一个登录页面,我的请求在 Express 4 中POST
变成了一个。GET
这是我的登录页面的业务部分:
这是我设置的路线:
res.render
我在策略的forGET /login
和findOne()
call上设置了一个断点local-login
。当我单击“提交”按钮时,捕获事物的断点就在router.get()
代码中。
在调试器中req.method
是GET
.
在浏览器(Chrome)中,我被告知我正在对/login
返回的 302 进行 POST。还有一个 200 代码的GET
待处理。/login
这两个代码(302、200)是调试器在router.get()
. 即使清除浏览器缓存也无济于事。
有人能告诉我为什么我的POST
要求没有得到尊重吗?
node.js - 如何在 Passport.js 中定义多个 isAuthenticated 函数?
我正在使用 Express/Node.js 和 Passport.js(passport-local) & Mongoose 构建一个应用程序。
有两种用户:
- 普通用户(他们使用
/user-login
页面和护照策略登录'local-user-login'
;普通用户存储在“用户”MongoDB 集合中) - 管理员(他们使用
/admin-login
页面和护照策略登录'local-admin-login'
;管理员存储在“管理员”MongoDB 集合中)
我也有 2 个页面:(仅/user_home
需要登录的普通用户访问)和/admin_home
(仅适用于登录的管理员)
路线/user_home
:
如果我以管理员身份登录并尝试访问/user_home
,它不允许我访问,这很好。我的问题是:如何定义另一个“ isLoggedIn
”函数来检查我是否以管理员身份而不是普通用户身份登录?理想情况下,我想要一个函数“isLoggedInAsUser”和另一个函数“isLoggedInAsAdmin”。
到目前为止,我尝试/admin_home
以相同的方式定义路线:
但很明显为什么它不起作用。该代码不知道我希望它检查它是否是管理员而不是普通用户。
node.js - POST json 中的 passport.js RESTful 身份验证还是?网址扩展
背景:我们已经有一个基于 madhums Node Express Mongoose Demo的服务器。它使用本地护照和加密(以及 Facebook,但不重要) - 并将密码加盐到数据库中。但是这个服务器需要 cookie 和 _csrf。发布 csrf 很容易,但我试图避免 cookie 和会话。所以我正在从头开始构建一个新服务器来访问与 Web 服务器相同的 mongoDB。
我正在尝试为移动应用程序做一个无会话的 RESTful 界面。
这个问题的原因我不清楚这样的应用程序(多个 IDE/平台)是否支持“curl --user”中可用的相同功能,但我知道如何生成 POST 至少用于概念证明。
passport-http 'basic' 示例包含以下代码:
解释了如何使用这个 curl 示例进行测试:
curl --user bob:secret http://127.0.0.1:3000/
如何更改 passport-http 'basic' 示例代码以接受 POST 中的用户名/密码,以允许这种 curl 请求?
curl -X POST -d 用户名=bob -d 密码=secret http://127.0.0.1:3000/
我相信我要问的是如何更改 passport/express/node.js/etc 代码以使用 req.body 与标头进行身份验证(我的理解有限)。
虽然赞赏和鼓励最佳实践建议,但如果您的回答没有回答上述具体问题,请明确说明。
javascript - 在 passport.js 中带有令牌的验证电子邮件
我只是在寻找解决方案,它为我在 passport.js 中的本地 autentification 制作带有令牌的验证电子邮件 是否有一些用于节点的插件或组件可以让我更轻松地验证?还是我必须自己做?
我的控制器
感谢您的任何意见!
node.js - Passport js 多策略认证给出了Bad Request
我正在设计一些我希望经过身份验证的用户可以访问的 API 端点。我为此任务选择了护照,还选择了两种身份验证策略:承载和本地。其背后的原因是管理员用户将使用用户名和密码,而移动应用程序将提供 access_token。
我面临的问题是,当我向路由添加两个身份验证策略时,我收到错误请求错误 400。
我已将此作为具有多个身份验证提供程序的示例 passport.js?
下面是一个示例代码:
以下是我正在使用的模块的版本
什么可能导致这样的问题以及如何解决它。
问候。