純粋な SQL で新しいユーザーを作成する方法

app.yml のヒントをありがとう、確かに機能しました。

わかりました、これをテストしてみます:

  1. migrationpassword プラグインをインストール
  2. 「Allow migratepassword allow insecure passwords」オプションを有効化
  3. 新しいユーザーを作成(API 経由)
  4. パスワードハッシュをカスタムフィールドに追加
    例:insert into user_custom_fields (user_id, name, value, created_at, updated_at) values (2,‘import_pass’,‘2aee1c40222c7754d4534xxxxxxx’, now(), now());
  5. 旧フォーラムのパスワードで新しいユーザーとしてログインを試みる

「ユーザー名、メールアドレス、またはパスワードが正しくありません」というエラーで失敗しますが、上記の回答について混乱しています。API はパスワードを提供しない限りユーザーを作成してくれないはずです(私は MD5 ハッシュを使用しました)。しかし、パスワードが存在すれば MD5 ハッシュよりも優先されるとおっしゃっていますが?

パスワードとして md5 ハッシュを使用することは推奨しません。それが実際のパスワードとして扱われます。ユーザー作成時にパスワードフィールドを必要としない場合は、代わりに長いランダムな文字列を使用してください。

私が言いたかったのは、Discourse はまず、ユーザーが入力したパスワードと保存されたパスワードを照合してログインを試みます。その試みが失敗した場合にのみ、migratepassword プラグインが機能し、カスタムフィールドに対して複数の組み込みの代替ハッシュアルゴリズム(その一つが md5 です)を使用して、ユーザーが提供したパスワードが正しいか確認します。

ああ、すいません、私のミスでした。パスワードハッシュの値を user_custom_fields に誤って設定してしまいました。これで直りました、ありがとうございます……

……しかし

activate を true にしてユーザーを作成したのに、管理コンソールでユーザーを見ると「アクティブ化済み」と表示されるにもかかわらず、ログインしようとすると次のようなメッセージが表示されます:

まだログインできません。以前、user@email.com 宛にアクティブ化メールを送信しました。アカウントを有効化するには、そのメールに記載された手順に従ってください。

なぜこのような表示になるのでしょうか?これを回避したかったのです。

私の環境では動作しています…何かエラーは出ていますか?

サイトへアクセスしようとするとエラー 502 が表示されます。前回は何時間も放置しましたが、コマンドを実行している環境ではエラーに気づきませんでした。

申し訳ありませんが、「それはしないでください」としてこれを閉じます。

リスクが高すぎ、忘れがちな副作用がたくさんあります。