Erzwinge Passwortänderung nach dem Login

Hallo,

ich migriere ein Forum zu Discourse. Ich verwende denselben Ansatz wie das Plugin discourse-migratepassword, um Benutzern die Anmeldung mit ihrem aktuellen Passwort zu ermöglichen, wobei diese Passwörter jedoch möglicherweise unsicher sind.

Ich möchte den Benutzern die Anmeldung ermöglichen, sie aber nach der Anmeldung dazu zwingen, ihr Passwort zu ändern, wenn es nicht den Discourse-Passwortrichtlinien entspricht.

Gibt es derzeit eine Möglichkeit, dies umzusetzen? Falls nicht, wo sollte ich ansetzen, um dies als Plugin zu implementieren?

Vielen Dank!

Sounds like it would be useful as an option on the discourse-migratepassword plugin. Slightly surprised it isn’t already.

Yeah, we can use that in the plugin too, happy to contribute that back if I implement it.

I was thinking in adding a custom_field to the user and render an alert until the user changes their password, but forcing them to change it sounds like a better option (not sure where to look to achieve this)

Well, I’m not forcing users to change their password, but we are rendering an alert on every login until they do so.

I’m setting a user.custom_fields['migratepassword_policy'] = true if the password doesn’t comply with Discourse settings and using that to conditionally render the modal, and we also send a password reset email once after they log in for the first time (with the insecure password)

What do you guys think?

I think it was enabled without an option in the past - if your password was too short, you were required to do a password reset instead.

The policy was flipped because this was locking people out of their accounts (dead email accounts).

Yeah, in this case we allow users to get into the platform with their current password, but we will render that modal until they change it (they can click OK or click outside the modal and it will close)

Maybe adding a “contact support if you don’t have access to your email anymore” message will do in case of dead email accounts

Hey, genau das Gleiche brauchen wir auch. Wir erstellen Benutzer über die API und ein Standardpasswort… Nachdem sich der Benutzer das erste Mal eingeloggt hat, sollte er sein Passwort ändern…

Wie hast du das gemacht?

Danke!

Anstatt einen Benutzer mit einem Standardpasswort anzulegen, sollten Sie einen Benutzer mit einem zufälligen Passwort erstellen und dieses niemals an ihn senden. Anschließend kann er über den Link „Passwort vergessen“ auf der Anmeldeseite sein Passwort zurücksetzen, bevor er sich anmeldet.

99 % unserer Nutzer haben keine E-Mail-Adresse ^^ und wir möchten nicht so viele E-Mails nur für „Passwort-zurücksetzen-E-Mails

Das wird ein großes Problem sein, da E-Mail in Discourse als Identität gilt…

Wenn Sie den vollständigen Kontroll über den Anmeldevorgang haben möchten, um Ihre Standards einzuhalten, empfehle ich die Verwendung von Offizielles Single-Sign-On für Discourse (sso).

Discourse unterstützt jetzt nativ die Ablauf von Passwörtern.

Dazu müssen Sie Folgendes ausführen:

user = User.find_by_username(username)
UserPasswordExpirer.expire_user_password(user)

Dies kann entweder durch Discourse-Mitarbeiter für gehostete Kunden erfolgen oder indem Sie Ihr Container aufrufen, eine Rails-Konsole ausführen und dies für die jeweiligen Benutzer ausführen.