5

nodeJS で wordpress データベースからユーザー認証を行う方法。

wordpressデータベースを使用して、ユーザー名/パスワードが正しいかどうかを検証する必要があります。Wordpress は PHPass PHP ライブラリを使用してパスワードを暗号化しています。しかし、NodeJS でパスワードを一致させる必要があります。

4

2 に答える 2

5

編集:今日、Wordpress ポータブル ハッシュをサポートする実装があります: wordpress-hash-node

前の返信:

はぁ…私はこれに興味を持ち、30 分かけて 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 に答える