0
사용자가 토큰이 포함 된 전자 메일을받은 직후 "Enter new password"화면에서 사용자 암호를 재설정하려고합니다 (새 암호 만들기). 필자는 ActivateRoute를 사용하여 url (토큰, 전자 메일, 비밀번호)의 매개 변수를 가져 왔으며이 매개 변수를 API로 보내야하지만 지금까지는 구성 요소에서 "정의되지 않음"을 얻었습니다. 이것은 ActivateRoute입니다 :각 4 : URL 사용자 매개 변수 캡처 문제
export class NewPasswordComponent implements OnInit {
public loginValues = new User([]);
// Constructor & init
constructor(
private auth: AuthService,
private router: Router,
private userService: UserService,
private snackBar: MatSnackBar,
private activatedRoute: ActivatedRoute,
) {
this.activatedRoute.params.subscribe(params => {
console.log(params['email']);
console.log(params.email); -> undefined
this.loginValues.email = params['email'];
this.loginValues.token = params['token'];
});
}
clientNewPassword() {
this.userService.newPassword(this.loginValues, passwordSent => {
this.router.navigateByUrl('/login');
});
}
서비스합니다 (HTML에 새 암호를 제출 호출) 서비스와 comunicates 구성 요소 방법 :
public newPassword(user: User, callback: (passwordSent: User) => void) {
return this.restangular
.all('auth/reset')
.customPOST(user.toJSONNewPassword())
.map((res) => res.data)
.subscribe({
next: (res: User) => {
this.user = new User(res);
callback(this.user);
},
});
}
그리고 경로를 :
//NEW PASSWORD
{
path: 'new-password/:email:token',
component: NewPasswordComponent,
canActivate: [LoginGuard],
},
누군가 나를 이룰 수있게 도와 줄 수 있습니까? 감사합니다
편집 :
의 URL 내가 전화하려고 해요 : DaniS에
http://localhost:4200/new-password/[email protected];token=13af5d409878f1dd5ec88049ba82a5549a07deb4
는 대부분의 경우 오류가 경로를 withing에 자리 잡고 있습니다. 내 이해에 따르면 new-password/: email : 토큰 대신 new-password/: email/: 토큰이어야합니다. 그래도 여전히 작동하지 않으면 console.log (params)를 사용해 값이 있는지 확인하십시오. – DaniS
@DanS 오류가 발생합니다. '오류 : 경로를 찾을 수 없습니다. URL 세그먼트 : 'new-password/email'' – Mellville
전화를 걸려는 URL을 게시 할 수 있습니까? URL은 다음과 유사해야합니다. http : // localhost// 슬래시가 중요합니다. 나는 당신이 슬래시없이 concatinated 두 값을 가지고 있다고 생각합니다. –
DaniS