web-dev-qa-db-ja.com

共有ユーザーテーブルは引き続きサポートされ、機能していますか?

私は以前にDrupal 7マルチサイトをテストしましたが、完全に機能しました。Drupal 8では、期待どおりに機能しません。

2つのサイトがあるとします。site1_をテーブルプレフィックスとして持つsite1とsite2_をテーブルプレフィックスとして持つsite2です。
ドキュメントには、settings.phpファイルに次の行を追加する必要があると記載されています。

  'prefix' => array(
     'default'   => 'site2_',
     'users'     => 'shared_',
   ),

Drupal 8のユーザーテーブルにはユーザー名とパスワードの情報がないため、機能しません。

この行を追加すると、Drupalも正常に機能しなくなります。

  'prefix' => array(
     'default'   => 'site2_',
     'users'     => 'site1_',
     'users_data'     => 'site1_',
     'users_field_data'     => 'site1_',
     'user__user_picture'     => 'site1_',
   ),

たとえば、site1のユーザーがパスワードを変更した場合、このユーザーはsite2の新しいパスワードでログインすることはできませんが、古いパスワードで一度ログインしてログアウトすることはできます。その後、新しいパスワードが機能します!

Drupal 6からDrupal 8への移行パスも共有テーブルの移行をサポートすることになると思いましたが、これは真実ではないようです。 https://www.drupal.org/node/2551549https://www.drupal.org/node/2768219 を読んでもあまり役に立ちません。

Drupal 8で、共有ユーザーテーブルは引き続きサポートされ、機能していますか?

5
user780

しないでください。

テーブルごとの共有は過去の遺物であり、非推奨であり、Drupal 9.で削除されます。フィールド、キャッシュの無効化などのテーブルを動的に作成するすべてのレイヤーが上にあるため、これはneverは機能しません。

共有認証システムが必要な場合は、実際のシングルサインオンプロジェクトを調べてください。
これらは開始するためのいくつかのリンクです。私はまだどちらもあまり経験がありません。

7
Berdir

Domain Accessを使用できます

ドメインアクセスプロジェクトは、one Drupalインストールと単一の共有データベース)からアフィリエイトサイトのグループを実行するためのツールを提供するモジュールのスイートです。モジュールを使用すると、次のようなサイトのグループ全体でユーザー、コンテンツ、設定を共有できます。

example.com
one.example.com
two.example.com
my.example.com
thisexample.com <-- can use any domain string
example.com:3000 <-- treats non-standard ports as unique

デフォルトでは、これらのサイトはDrupalインストール済み環境のすべてのテーブルを共有します。ドメインプレフィックスモジュール(Drupal 6の場合)により、上級ユーザー向けの動的なテーブルプレフィックスを選択できます。 。

0
No Sssweat