如何使用带 Angular 的 ngOnInit 检索用户标识符 9

How to retrieve a user identifier using ngOnInit with Angular 9

我是 Angular 的新手,我正在创建一个忘记密码 link,当用户与之交互时,它会向他们的电子邮件地址发送一封带有唯一密码令牌的电子邮件以便他们可以重设密码。我希望能够识别用户,使用他们的用户标识符并将他们的电子邮件地址与此匹配并发送电子邮件。

  1. 我是否需要将用户标识符或用户电子邮件地址传递到服务中?
  2. 如何构造 ngOnInit?

// user.service.ts

public forgotUserPasswordVerification(email: string): Observable<void> { // email or identifier?? 
        return this.http.post<void>('api/verifications/forgotpasswordverification', email);
    } 

//忘记了-password.component.ts

ngOnInit() {
this.userService.forgotUserPasswordVerification(this.email) // this.email or this.identifier?  
.subscribe(data => {
this.success = true;
})};

我认为没有必要为此创建组件。尝试在 userService 中实现这个逻辑:

将用户 ID 传递给您的 forgotUserPasswordVerification(userId) 方法,在其中您应该能够执行 2 个操作: 第一

let userEmail= this.userService.getUserEmailById(this.id);

然后

this.userService.forgotUserPasswordVerification(this.userEmail)
      .pipe(first())
      .subscribe(
        () => {
          this.success = true;
        },
        (error) => {
          // display an error toast maybe
        }
      );
  }

并在用户单击 link 后在登录组件中调用您的 forgotUserPasswordVerification(userId) 方法。