So erstellen Sie einen neuen Benutzer in reinem SQL

Vielen Dank für den Tipp mit app.yml, das hat funktioniert.

Okay, ich teste das gerade:

  1. Migrationpassword-Plugin installiert
  2. Option „Ermögliche Migration von Passwörtern mit unsicheren Passwörtern“ aktiviert
  3. Neuer Benutzer erstellt (über API)
  4. Passwort-Hash in die benutzerdefinierten Felder eingefügt
    z. B. insert into user_custom_fields (user_id, name, value, created_at, updated_at) values (2,‘import_pass’,‘2aee1c40222c7754d4534xxxxxxx’, now(), now());
  5. Versuch, sich als neuer Benutzer mit dem Passwort des alten Forums anzumelden

Es schlägt fehl mit „Falscher Benutzername, E-Mail oder Passwort“, aber ich bin verwirrt über deine obige Antwort: Die API lässt mich keinen Benutzer erstellen, es sei denn, ich stelle ein Passwort bereit (ich habe nur den MD5-Hash verwendet), aber du sagst, wenn ein Passwort vorhanden ist, wird es dem MD5-Hash Vorrang einräumen?

Ich würde nicht empfehlen, den MD5-Hash als Passwort zu verwenden, da er als tatsächliches Passwort genutzt wird. Wenn Sie das Passwortfeld bei der Erstellung eines Benutzers nicht benötigen, verwenden Sie einfach einen langen, zufälligen String.

Was ich sagen wollte, ist: Discourse versucht zunächst, den Benutzer anzumelden, indem es das vom Benutzer eingegebene Passwort mit dem gespeicherten Passwort vergleicht. Erst wenn dieser Versuch fehlschlägt, greift das migratepassword-Plugin ein und prüft, ob das vom Benutzer eingegebene Passwort korrekt ist, indem es es mit dem benutzerdefinierten Feld unter Verwendung einer Reihe integrierter alternativer Hashing-Algorithmen vergleicht (MD5 ist einer davon).

Ah, sorry, mein Fehler. Ich hatte den falschen Wert für den Passwort-Hash in user_custom_fields eingetragen. Okay, das hat es behoben, danke…

… jedoch

Obwohl ich den Benutzer mit activate=true erstellt habe und im Admin-Console angezeigt wird, dass der Benutzer aktiviert ist, erscheint beim Versuch, sich einzuloggen, folgende Meldung:

Sie können sich noch nicht anmelden. Wir haben Ihnen zuvor eine Aktivierungs-E-Mail an user@email.com gesendet. Bitte befolgen Sie die Anweisungen in dieser E-Mail, um Ihr Konto zu aktivieren.

Warum erhalte ich diese Meldung? Ich habe versucht, das zu vermeiden.

Bei mir funktioniert es… erhältst du irgendwelche Fehlermeldungen?

Wenn ich versuche, die Seite aufzurufen, erhalte ich einen Fehler 502. Beim letzten Mal habe ich es einige Stunden warten lassen.
Ich habe jedoch keine Fehler von der Stelle bemerkt, an der ich den Befehl ausführe.

Tut mir leid, aber ich werde das als „Bitte tu das nicht“ abschließen.

Zu riskant, und es gibt viele Nebenwirkungen, die du wahrscheinlich vergessen wirst.