ANIMEXD Ответов: 0

Файл Cookie не существует в браузере, но существует в postman ?


Здравствуйте, ребята, я сделал PHP API я тестирую его с почтальоном, когда вход в API отправляет вам файл cookie содержит токен (JWT), тогда вы можете выполнять другие действия все работает нормально на почтальоне, и я могу видеть файл cookie, но когда я сделал клиентскую сторону, когда я вошел в файл cookie не существует, я не знаю, почему?

Что я уже пробовал:

<?php
/////////////////////////
// Authentication code.
/////////////////////////

// headers
header('Access-Control-Allow-Origin: domain');
header('Access-Control-Allow-Credentials: true');
header('Content-Type: application/json');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Access-Control-Allow-Headers,Content-Type,Access-Control-Allow-Methods, Authorization, X-Requested-With');

// include bootstraper
require_once "../../index.php";

// instantiate admin model
$admin_model = new Admin();
$admin_data = $admin_model->read_admin()[0];

// get request raw data from client (user)
$raw_data = json_decode(file_get_contents("php://input"), true);

// success can login
if ($raw_data["username"] == $admin_data["username"]
    && $raw_data["password"] == $admin_data["password"]) {

    // create token
    $new_token = JWT::sign([
        "algo" => "sha256",
        "typ" => "jwt",
    ], [
        "admin" => true,
        "iat" => date("Y-m-d H:i:s"),
        "exp" => date("Y-m-d H:i:s", strtotime("+1 minutes", strtotime(date("Y-m-d H:i:s")))),
    ], SECRET);

    // if token not exists or empty generate new token and send success respons
    if (!isset($_COOKIE["token"])) {
        setcookie("token", $new_token, time() + 60, "/");
        echo json_encode(["message" => "New token generated!", "data" => [], "logged" => true]);
        exit();
    }

    // verify the token if it's invalide generate new token and send success respons
    if (!JWT::verify($_COOKIE["token"], SECRET)) {
        setcookie("token", $new_token, time() + 60, "/");
        echo json_encode(["message" => "New token generated!", "data" => [], "logged" => true]);
        exit();
    }

    // send success respons
    echo json_encode(["message" => "Success!", "data" => [], "logged" => true]);

} else { // invalide inputs

    // send error respons
    echo json_encode(["message" => "Error!", "data" => [], "logged" => false]);

}

0 Ответов