Я работаю над школьным проектом. Сторона клиента находится в Angular 9, а сторона сервера - PHP, сделанная с SlimFramework v3.
Функция входа в систему в моем php бэкенде:
Контроллер. php
$app->post('/api/user/login', function(ServerRequestInterface $request, ResponseInterface $response) use ($app){
$data = $request->getParsedBody();
$email = $data['email_json'];
$password = $data['password_json'];
$freg = new FRegistrazione();
$res = $freg->login($email, $password);
if ($res = true){
$secretKey = "Ma69r3Ga8A";
$issuerClaim = "APACHESERVER";
$audienceClaim = "CINEMA";
$issuedatClaim = time();
$notbeforeClaim = $issuedatClaim + 10;
$expireClaim = $issuedatClaim + 60000;
$token = array(
"iss" => $issuerClaim,
"aud" => $audienceClaim,
"iat" => $issuedatClaim,
"nbf" => $notbeforeClaim,
"exp" => $expireClaim,
"data" => array(
"email" => $email,
"password" => $password));
$jwt = JWT::encode($token, $secretKey);
$response = json_encode(
array(
"res" => "ok",
"message" => "Login eseguito correttamente",
"jwt" => $jwt,
"email" => $email,
"exipireAt" => $expireClaim
));
} else {
$response = json_encode(
array(
"res" => "ko",
"message" => "Credenziali errate"
));}
return $response;
});
Класс FRegistrazione. php
public function login($email, $password) {
$islogged = false;
$query = 'SELECT * FROM registrazione WHERE email = ' . '\'' . $email . '\'' . ' AND password = ' . '\'' . $password . '\'';
$res = $this->_connection->query($query);
if ($res->num_rows == 1) {
$islogged = true;} else {$islogged = false;}
Этот код работает правильно, если я отправляю запрос почтальону.
Но когда я отправляю запрос на вход из Angular9,
if ($res->num_rows == 1) {
$islogged = true;} else {$islogged = false;}
всегда возвращает $islogged=false
, даже в случае действительного запроса на Mysql.