web-dev-qa-db-ja.com

外部データベースデータを使用してWordpressにログインする

私はWPサイトを持っていて、また外部DB(WP DBではないことを意味します)を持っています。そのテーブルでの挿入プロセスは、WPが使用するのと同じアルゴリズムを使用します。私がここでする必要があるのはWPへのログインですが、ところで同じホストにあるこの外部DBを使用しています。私はこのリンクをチェックします http://www.tyssendesign.com.au/articles/cms/connecting-to-external-database-from-within-wordpress/ および http://wordpress.org/extend/plugins/external-database-authentication/ そして最初のものは私が欲しいものではありませんが、2番目のものはWP 3+と互換性がなく、3.3.1を使っています、any提案やドキュメントや何か他のもの?

2
ReynierPM

コアのwp_authenticate関数を上書きすることができます。

カスタムプラグインを作成して、新しいバージョンのwp_authenticateを宣言する必要があります。この関数は、ユーザー名とパスワードを受け取り、WP $ userオブジェクトを返します。

wp_authenticateは 'プラグイン可能'な機能で、wp-includes/pluggable.phpファイルにあります。

2
Roscius

私は他の場所で見つけることができるより多くの機能を必要としたので私は私自身のプラグインを書いた - External Login

主な機能は次のとおりです。

  • WordPressフィールドと互換性があるように異なるDBテーブル構造をマッピングします。
  • 外部データベースとは異なるハッシュ方法を扱います(bcrypt、MD 2 4と5、SHA 256 384と512、その他多数)。
  • 異なる塩漬け方法を許可する
  • ユーザーとロールで共通のWordPress機能を引き続き使用できるように、データベースにユーザーのコピーバージョンを生成します。
  • あなたの「外部データベース」からWordPressにあるものにロールをマッピングします。 「外部データベース」の学生はWordPressデータベースの編集者になります。

あなたが他の機能を必要とするかどうか私に知らせてください:)

https://en-gb.wordpress.org/plugins/external-login/ /

1
Tom Benyon

外部データベース認証プラグインを試しましたか?しばらく更新されていないからといって、必ずしもうまくいくとは限りません。少なくとも、あなたは彼らが何をしたのか彼らのソースコードを見て、あなたがしたいことを得るための基礎としてそれを使うことができます。

これが http://plugins.trac.wordpress.org/browser/external-database-authentication/trunk/ext_db_auth.php

1
kingkool68

私は私のニーズに合わせてその古いプラグインを更新しました。あなたは更新を見つけることができます@ http://www.7mediaws.org/extend/plugins/external-db-auth-reloaded

1
Joshua Parker

はい、あなたのプラグインは素晴らしいです。あなたのプラグインを改善し、完成させるために必要なのは、新しいWordPressバージョンでは、ユーザーデータを含む2つの異なるテーブルがあるということです。それらはwp_userとwp_usermetaです。そしてプラグインでは、認証するテーブルが1つだけ提供されています。だからこの機能がうまくいけば、間違いなくあなたのプラグインは100%成功しています。

他に何が、バグがあるということです。認証するテーブルは1つしかないため、ユーザーロールを認証して同期することはできませんでした。これは、外部ログインを有効にしたとき、ログアウトした時刻、次にログインしたとき、自分が加入者ロールであることを意味します。ロールが一致しない場合は指定します。だから私も私の管理を失いました。親切に助け、理解しなさい。

0
Naman Vrati