Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Externe Mandanten (weitere Informationen)
In diesem Lernprogramm erfahren Sie, wie Sie die Kennwortzurücksetzung in der Angular-Einzelseiten-App mit systemeigenem JavaScript SDK aktivieren. Die Kennwortzurücksetzung ist für Benutzerkonten verfügbar, die E-Mails mit kennwortauthentifizierungsablauf verwenden.
In diesem Tutorial erfahren Sie:
- Aktualisieren Sie die Angular-App, um das Kennwort des Benutzers zurückzusetzen.
- Testflow für die Kennwortzurücksetzung
Voraussetzungen
- Führen Sie die Schritte im Lernprogramm aus: Registrieren Von Benutzern bei der Angular-Einzelseiten-App mithilfe des javaScript-SDKs für die systemeigene Authentifizierung.
- Aktivieren Sie die Self-Service-Kennwortzurücksetzung (Self-Service Password Reset, SSPR) für Kundenbenutzer im externen Mandanten. SSPR ist für Kundenbenutzer für Apps verfügbar, die E-Mails mit Kennwortauthentifizierungsfluss verwenden.
Erstellen der Kennwortzurücksetzungskomponente
Verwenden Sie Angular CLI, um eine neue Komponente für die Kennwortzurücksetzung innerhalb des Komponentenordners zu generieren, indem Sie den folgenden Befehl ausführen:
cd components ng generate component reset-passwordÖffnen Sie die Datei "Reset-password/reset-password.component.ts ", und ersetzen Sie den Inhalt durch den Inhalt aus reset-password.component.ts
Öffnen Sie das Rücksetzkennwort/reset-password.component.html Datei, und fügen Sie den Inhalt aus reset-password.component.htmlhinzu.
Die folgende Logik in reset-password.component.ts bestimmt den nächsten Schritt nach dem anfänglichen Zurücksetzen des Kennwortvorgangs. Je nach Ergebnis wird das Codeeingabeformular in reset-password.component.html angezeigt, um den Kennwortzurücksetzungsprozess fortzusetzen:
const result = await client.resetPassword({ username: this.email }); if (result.isCodeRequired()) { this.showCode = true; this.isReset = false; this.showNewPassword = false; }- Die Instanzmethode des SDK, resetPassword() startet den Kennwortzurücksetzungsfluss.
- In der dateireset-password.component.html :
<form *ngIf="showCode" (ngSubmit)="submitCode()"> <input type="text" [(ngModel)]="code" name="code" placeholder="OTP Code" required /> <button type="button" (click)="submitCode()" [disabled]="loading">{{ loading ? 'Verifying...' : 'Verify Code' }}</button> </form>Nachdem
submitCode()das Ergebnis erfolgreich aufgerufen wurde, bestimmt das Ergebnis den nächsten Schritt: Wenn das Kennwort erforderlich ist, wird das neue Kennwortformular angezeigt, damit der Benutzer den Kennwortzurücksetzungsprozess fortsetzen kann.if (result.isPasswordRequired()) { this.showCode = false; this.showNewPassword = true; this.isReset = false; this.resetState = result.state; }In der dateireset-password.component.html :
<form *ngIf="showNewPassword" (ngSubmit)="submitNewPassword()"> <input type="password" [(ngModel)]="newPassword" name="newPassword" placeholder="New Password" required /> <button type="button" (click)="submitNewPassword()" [disabled]="loading">{{ loading ? 'Submitting...' : 'Submit New Password' }}</button> </form>Wenn der Benutzer den Anmeldefluss unmittelbar nach Abschluss des Zurücksetzens des Kennworts starten soll, verwenden Sie diesen Codeausschnitt:
<div *ngIf="isReset"> <p>The password has been reset, please click <a href="/sign-in">here</a> to sign in.</p> </div>
Automatische Anmeldung nach dem Zurücksetzen des Kennworts (optional)
Sie können ihre Benutzer nach einer erfolgreichen Kennwortzurücksetzung automatisch anmelden, ohne einen neuen Anmeldeablauf zu starten. Verwenden Sie dazu den folgenden Codeschnipsel. Ein vollständiges Beispiel finden Sie unter reset-password.component.ts:
if (this.resetState instanceof ResetPasswordCompletedState) {
const result = await this.resetState.signIn();
if (result.isFailed()) {
this.error = result.error?.errorData?.errorDescription || "An error occurred during auto sign-in";
}
if (result.isCompleted()) {
this.userData = result.data;
this.resetState = result.state;
this.isReset = true;
this.showCode = false;
this.showNewPassword = false;
}
}
Wenn Sie die automatische Anmeldung in einem Benutzer ausführen, verwenden Sie den folgenden Codeausschnitt in Ihrem reset-password.component.html:
<div *ngIf="userData && !isSignedIn">
<p>Password reset completed, and signed in as {{ userData?.getAccount()?.username }}</p>
</div>
<div *ngIf="isReset && !userData">
<p>Password reset completed! Signing you in automatically...</p>
</div>
Aktualisieren des Routingmoduls
Öffnen Sie die Datei "src/app/app.routes.ts ", und fügen Sie dann die Route für die Kennwortzurücksetzungskomponente hinzu:
import { ResetPasswordComponent } from './reset-password/reset-password.component';
const routes: Routes = [
{ path: 'reset-password', component: ResetPasswordComponent },
...
];
Testen der Kennwortzurücksetzungsfunktionalität
Führen Sie zum Starten des CORS-Proxyservers den folgenden Befehl in Ihrem Terminal aus:
npm run corsFühren Sie zum Starten der Anwendung den folgenden Befehl in Ihrem Terminal aus:
npm startÖffnen Sie einen Webbrowser, und navigieren Sie zu
http://localhost:4200/reset-password. Ein Registrierungsformular wird angezeigt.Um das Kennwort für ein vorhandenes Benutzerkonto zurückzusetzen, geben Sie Ihre Details ein, wählen Sie die Schaltfläche " Weiter " aus, und folgen Sie dann den Eingabeaufforderungen.
Einrichten poweredByHeader: false in next.config.js
In Next.jsist der x-powered-by-Header standardmäßig in HTTP-Antworten enthalten, um anzugeben, dass die Anwendung von Next.jsunterstützt wird. Aus Sicherheits- oder Anpassungsgründen möchten Sie diesen Header jedoch möglicherweise entfernen oder ändern.
const nextConfig: NextConfig = { poweredByHeader: false, /* other config options here */ };