すべてのユーザーに1回限りのログインを送信したいので、drush uliを使用して、次のようなリンクを取得しています。
http://html/user/reset/1/1509979615/VBPx_FMfKeJUEt1moVcsSQGUMX_tFUSYEdEfRlmq7eA
したがって、ユーザー5が1回のログインを使用したい場合、これはユーザー1のみに使用されますよね?基本的には、すべてのユーザーに対して一度のログインを設定します。
このURLをDrupal 8で渡すにはどうすればよいですか?
忘れたパスワードメールでこれを使用する方法を知りたいだけです。
drush
特定のユーザーの1回限りのログインを取得するには、次の構文を使用します。
_drush uli <user>
_
ここで、_<user>
_はuid(_5
_など)、ユーザー名、またはユーザーのメールアドレスのいずれかです。
複数のユーザーまたはすべてのユーザーのワンタイムログインURLを取得するには、ループでdrush
を実行する必要があります。
_for uid in $(drush sqlq "SELECT uid FROM users"); do drush uli $uid; done
_
構文のヘルプを表示するには、_drush help uli
_を実行します。
_http://html
_の部分を修正するには、_-l http://example.com
_パラメータを追加するか、設定ファイルで_$base_url
_を設定します。
Drupalを使用して電子メールで1回限りのログインを送信することに興味がある場合は、カスタムコードで user_pass_reset_url()
関数を使用できます。
ユーザーがログインしてパスワードをリセットするための一意のURLを生成します。
または 1回のログイン モジュールを使用します(D8の場合、これを確認してください issue )。
1回のログインは、1回限りのログインリンクをユーザーに電子メールで送信する機能を提供します。
すべてのユーザーに常にワンタイムログインリンク経由でのログインを強制したい場合は、 passwordless モジュールを使用できます。
Settings.phpファイルに$ base_urlを設定すると、Drushのユーザーログインコマンドにより、出力に正しいURLが生成されます。次に、簡単なスクリプトを記述して、各ユーザーに独自のログインリンクをメールで送信します。
ユーザーにパスワードリセットリンクをメールで送信するDrushコマンドはありませんが、もちろんDrupalはパスワードのリクエストページでこれを行います。ユーザーモジュールをガイドとして使用して、すべてのユーザーを一括リセットする単純なモジュールまたはDrushコマンド。
Drushバージョン> 9では、
drush uli --name=USERNAME
通知reset/{UID}/
がリセットしようとしたユーザーのIDである必要がある後の数字を見てください
あなたの場合user/reset/1/
は明らかに使用済みのパスワードをリセットします。
したがって、すべてのユーザーに対して実行する場合は、ターミナルで次のコマンドを実行します。
for name in $(drush sqlq "SELECT name FROM users"); do drush uli --name=$name; done