【发布时间】:2019-05-17 04:22:30
【问题描述】:
我正在为我的 Web 应用程序设置本地身份验证策略,但在我打算实施它的方式上遇到了一些问题。
我已阅读 Passport 的文档并查看了多个示例,但我没有找到任何关于我遇到的这个特定问题的信息。所以首先我知道 Passport 会寻找默认的 req.body.username 和 req.body.password。我也知道,如果这些不是您希望传递的键的名称,您可以使用 LocalStrategy 构造函数的第一个参数交换它们,如下所示:new LocalStrategy({ usernameField: 'otherUsername', passwordField: 'otherPassword' }, (username, password, done) => { ... })
我的问题在于我传递用户凭据的方式。从我的前端,我将用户的用户名和密码加密到正文中的单个对象中(我知道正文无论如何都会被加密,但这对我来说又是一个级别),然后我希望在传递数据之前操纵数据到护照。
回顾一下,我按以下格式发送我的凭据:
req.body.login = {username: '...', password: '...'}
然后解密登录对象,然后将用户名/密码属性拉出来传递给护照。这可能吗?我觉得应该是这样,如果本地策略无法实现,我可以使用其他自定义策略来实施吗?
感谢任何帮助。谢谢!
【问题讨论】:
标签: javascript node.js authentication passport.js