nodeJS で wordpress データベースからユーザー認証を行う方法。
wordpressデータベースを使用して、ユーザー名/パスワードが正しいかどうかを検証する必要があります。Wordpress は PHPass PHP ライブラリを使用してパスワードを暗号化しています。しかし、NodeJS でパスワードを一致させる必要があります。
nodeJS で wordpress データベースからユーザー認証を行う方法。
wordpressデータベースを使用して、ユーザー名/パスワードが正しいかどうかを検証する必要があります。Wordpress は PHPass PHP ライブラリを使用してパスワードを暗号化しています。しかし、NodeJS でパスワードを一致させる必要があります。
編集:今日、Wordpress ポータブル ハッシュをサポートする実装があります: wordpress-hash-node。
前の返信:
はぁ…私はこれに興味を持ち、30 分かけて PHPass のソース コードを調べました。次に、ノード phpassをグーグルで検索しました。
編集:詳しく調べると、これはbcrypt暗号化のみを実装しているようですが、PHPassのデフォルト(Wordpressが使用していると思います)は「ポータブルハッシュ」と呼ばれるものです。node-phpass
ポータブル ハッシュを要求するとスロー'Portable hashes are not implemented'
されます。node-phpass
それを実装してプルリクエストを送信することをお勧めします。
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 を返します。