私はパスワードのリセットを実装し始めたばかりで、それを達成する2つの方法を見ることができます(まだテストしていないか、試したことさえありません):
1.Registration を継承し、PUT を処理するクラスを作成します。その後、パスワードを変更する登録クラスの UpdateUserAuth メソッドを呼び出すことができるはずです。問題 - 私にとって - ここで、入力の検証では、1 つだけではなく、ユーザー名とパスワードを指定する必要があるということです (識別子として電子メールのみを使用します)。これは、検証機能をオフにすることで回避できます。
2.UpdateUserAuth が行うことを行うパスワード リセット サービスを作成します。
var session = this.GetSession();
var existingUser = UserAuthRepo.GetUserAuth(session, null);
if (existingUser == null)
{
throw HttpError.NotFound("User does not exist");
}
var newUserAuth = ToUserAuth(request);
UserAuthRepo.UpdateUserAuth(newUserAuth, existingUser, request.Password);
明らかに、適切な検証を追加する必要があります。
更新しました
パスワード変更リマインダー/リセット サービスをGistとして公開しました(私の最初の Gist!)