5

如何在 nodeJS 中从 wordpress 数据库进行用户身份验证。

如果用户名/密码正确,我需要使用 wordpress 数据库验证用户。Wordpress 使用 PHPass PHP 库来加密密码。但我需要在 NodeJS 中匹配密码。

4

2 回答 2

5

编辑:今天有一个支持 Wordpress 可移植哈希的实现:wordpress-hash-node

上一个回复:

唉……我对这个产生了兴趣,花了半个小时来翻阅PHPass源代码。然后我用谷歌搜索节点 phpass

编辑:仔细检查,这似乎只实现 bcrypt 加密,而 PHPass 默认值(我认为 Wordpress 使用)是他们称之为“便携式哈希”的东西。当您要求便携式哈希时node-phpass抛出。'Portable hashes are not implemented'我建议你实现它node-phpass并发送一个拉取请求。

于 2012-04-27T10:02:10.367 回答
1

对于 Wordpress 4.9.5,在 NodeJS 之后

npm i wordpress-hash-node

var hasher = require('wordpress-hash-node');
let wordpressHashPass = "$P$BzPE3JGpq4CUpvpMHhtPh3lZmIoG.s1";
let wordpressPlainTextPass = '(&@fZsImcKq7K3Lmd&qBe!Jx';
var checked = hasher.CheckPassword(wordpressPlainTextPass, wordpressHashPass); //This will return true
console.log(checked); // returns true

var hasher = require('wordpress-hash-node');
let wordpressHashPass = "$P$BzPE3JGpq4CUpvpMHhtPh3lZmIoG.s1";
let wordpressPlainTextPass = 'goodday';
var checked = hasher.CheckPassword(wordpressPlainTextPass, wordpressHashPass); //This will return false
console.log(checked); // returns false

wordpressHashPass 是您可以在 Wordpress 的 wp_users 表中为用户找到的 MD5 哈希密码。

wordpressPlainTextPass 是用户在密码字段中键入的纯文本密码。

CheckPassword 方法比较纯文本密码和散列密码。如果一致则返回 true,如果不一致则返回 false。

于 2018-04-18T10:28:22.247 回答