我正在填写重设密码的表格。
因此,用户接收并发送电子邮件,单击将其发送到页面的按钮以重置密码。
网址可以是:
http://localhost:4200/password/reset?token=YyG30e4YyZqvbxu5Q99AhwUOAuEywD
或
http://localhost:4200/password/reset/YyG30e4YyZqvbxu5Q99AhwUOAuEywD
我更喜欢第一个,因为令牌不代表任何实体。
然后,当我提交表单时,我会这样做:
ngOnInit() {
let token = this.route.snapshot.queryParamMap.get('token');
this.resetForm = this.formBuilder.group({
email: ['', Validators.required],
password: ['', Validators.required],
password_confirmation: ['', Validators.required],
token: ['', Validators.required]
}, {validator: this.matchingPasswords('password', 'password_confirmation')});
this.returnUrl = '/dashboard';
}
但是令牌仍然不是formbuilder的一部分,因此它将失败。
我应该怎么做
答案 0 :(得分:0)
将formbuilder中的token值设置为queryParams中的token。
ngOnInit() {
let token = this.route.snapshot.queryParamMap.get('token');
this.resetForm = this.formBuilder.group({
email: ['', Validators.required],
password: ['', Validators.required],
password_confirmation: ['', Validators.required],
token: [token, Validators.required]
}, {validator: this.matchingPasswords('password', 'password_confirmation')});
this.returnUrl = '/dashboard';
}
答案 1 :(得分:0)
另一种可能性是拥有当前用户令牌的单身用户服务。
为简化请求,可能考虑使用http拦截器将令牌附加到每个请求。此外,用于身份验证的令牌不是随http头“ Authorization”一起传送吗?