app.yml のヒントをありがとう、確かに機能しました。
わかりました、これをテストしてみます:
- migrationpassword プラグインをインストール
- 「Allow migratepassword allow insecure passwords」オプションを有効化
- 新しいユーザーを作成(API 経由)
- パスワードハッシュをカスタムフィールドに追加
例:insert into user_custom_fields (user_id, name, value, created_at, updated_at) values (2,‘import_pass’,‘2aee1c40222c7754d4534xxxxxxx’, now(), now()); - 旧フォーラムのパスワードで新しいユーザーとしてログインを試みる
「ユーザー名、メールアドレス、またはパスワードが正しくありません」というエラーで失敗しますが、上記の回答について混乱しています。API はパスワードを提供しない限りユーザーを作成してくれないはずです(私は MD5 ハッシュを使用しました)。しかし、パスワードが存在すれば MD5 ハッシュよりも優先されるとおっしゃっていますが?
パスワードとして md5 ハッシュを使用することは推奨しません。それが実際のパスワードとして扱われます。ユーザー作成時にパスワードフィールドを必要としない場合は、代わりに長いランダムな文字列を使用してください。
私が言いたかったのは、Discourse はまず、ユーザーが入力したパスワードと保存されたパスワードを照合してログインを試みます。その試みが失敗した場合にのみ、migratepassword プラグインが機能し、カスタムフィールドに対して複数の組み込みの代替ハッシュアルゴリズム(その一つが md5 です)を使用して、ユーザーが提供したパスワードが正しいか確認します。
ああ、すいません、私のミスでした。パスワードハッシュの値を user_custom_fields に誤って設定してしまいました。これで直りました、ありがとうございます……
……しかし
activate を true にしてユーザーを作成したのに、管理コンソールでユーザーを見ると「アクティブ化済み」と表示されるにもかかわらず、ログインしようとすると次のようなメッセージが表示されます:
まだログインできません。以前、user@email.com 宛にアクティブ化メールを送信しました。アカウントを有効化するには、そのメールに記載された手順に従ってください。
なぜこのような表示になるのでしょうか?これを回避したかったのです。
私の環境では動作しています…何かエラーは出ていますか?
サイトへアクセスしようとするとエラー 502 が表示されます。前回は何時間も放置しましたが、コマンドを実行している環境ではエラーに気づきませんでした。
申し訳ありませんが、「それはしないでください」としてこれを閉じます。
リスクが高すぎ、忘れがちな副作用がたくさんあります。