Я работаю над личным проектом с Angular 6
в качестве моего клиента и Laravel 5.6
в качестве моего API, и я не могу понять, что происходит с моей службой аутентификации.
Для некоторого контекста: я хотел бы реализовать jwtAuth
для управления моей аутентификацией пользователя, и она работает отлично (я тестировал конечные точки API с помощью Postman). Теперь это моя функция регистрации:
public function register(RegisterFormRequest $request)
{
$user = new User;
$user->username = $request->username;
$user->email = $request->email;
$user->password = bcrypt($request->password);
$user->save();
return response()->json([
'status' => 'success',
'message' => '¡Usuario registrado!',
'user' => $user
], 200);
}
Как видите, эта функция возвращает json со статусом, сообщением и информацией о пользователе. На стороне клиента это моя auth.service.ts
функция «зарегистрировать пользователя»:
registerUser(user: User):Observable<User> {
return this.http.post<User>(`${this.url}/register`, user, httpOptions)
.pipe(
catchError((e:Response) => throwError(e))
);
}
Который возвращает тот же самый json, который я определил в своем API, если все пойдет хорошо. Наконец, в моем register.component.ts
это функция, которую я использую для реализации этой сервисной функции:
onSubmit() {
this.authService.registerUser(this.user).subscribe(
response => {
swal({
type: response.status,
text: response.message,
footer: 'Usted será redirigido hacia el formulario de ingreso.',
showConfirmButton: false,
showCloseButton: false,
showCancelButton: false,
allowEscapeKey: false,
allowOutsideClick: false,
});
}
);
}
Просто так, он не работает, потому что выдает следующую ошибку:
Property 'status' does not exist on type 'User'.
Кстати, вот мой user
класс:
export class User {
id: number;
username: string;
email: string;
password: string;
password_confirmation: string;
}
И я предполагаю, что он будет делать то же самое с response.message
, и я думаю, что он связан с обработчиком Observable
, но я не могу понять, как он работает. Если я уберу их в строки кода, все будет работать так ... Как я могу решить эту проблему?
PD: Извините за мой плохой английский!