Я пытаюсь создать приложение с помощью NativeScript и Angular, которое будет управлять рабочим временем сотрудников в компании.
Итак, я должен настроить страницу входа в систему, и есть моя проблема : Я связал функцию нажатием кнопки «ВХОД» и, нажав на нее, отправляю имя пользователя и пароль в службу, к которой пытаюсь подключиться, и к конечной точке (mypath/api/auth.php
).
В этом php файле я установил соединение с БД и запрос SELECT, который получает имя пользователя и пароль в виде функции $ _POST. Но теперь, когда я нажимаю на кнопку «ВХОД», я получаю предупреждение с [Object Object]
, даже если учетные данные правильные или неправильные.
Я новичок как в NativeScript, так и в Angular.
Моя PHP функция подтверждения пользователя:
$username = $_POST["username"];
$password = $_POST["password"];
$conn = getDB();
$hash_pwd = hash('sha256', $password);
$stmt = $conn->prepare("SELECT * FROM dipendenti WHERE cod_fiscale=:username AND password=:password");
$stmt->bindParam("username", $username,PDO::PARAM_STR) ;
$stmt->bindParam("password", $hash_pwd,PDO::PARAM_STR) ;
$stmt->execute();
$count=$stmt->rowCount();
$data=$stmt->fetch(PDO::FETCH_OBJ);
closeDB($conn);
return json_encode($data);
Мой файл user.service.ts:
import { Injectable } from "@angular/core";
import { HttpClient, HttpHeaders, HttpResponse } from "@angular/common/http";
import { Observable, throwError } from "rxjs";
import { catchError, map, tap } from "rxjs/operators";
import { Auth } from "./auth.model";
import { Config } from "../config";
@Injectable()
export class AuthService {
constructor(private http: HttpClient) { }
login( user: Auth) {
if(!user.codFiscale || !user.password) {
return throwError("Devi inserire sia codice fiscale sia la tua password per accedere");
}
return this.http.post(Config.apiUrl + 'api/auth.php',
JSON.stringify({
username: user.codFiscale,
password: user.password
}),
{
headers: this.getCommonHeaders()
}).pipe(
map(response => response),
catchError(this.handleErrors)
);
}
getCommonHeaders() {
return {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
}
}
handleErrors(error: Response) {
console.log(JSON.stringify(error));
return throwError(error);
}
}
Моя функция срабатывает при нажатии кнопки:
submitLogin() {
if(this.isLoggingIn) {
this.authService.login(this.user).subscribe(
() => {
this.router.navigate(["/home"]);
},
(exception) => {
if(exception.error && exception.error.description) {
alert(exception.error.description);
} else {
alert(exception.error);
}
}
);
}
}
Есть что-то, что я забыл?