Как обрабатывать файлы cookie/сессии, если PHP-сервер находится на другом сервереPhp

Кемеровские программисты php общаются здесь
Ответить
Гость
 Как обрабатывать файлы cookie/сессии, если PHP-сервер находится на другом сервере

Сообщение Гость »


У меня общий вопрос по поводу обработки файлов cookie, если во время разработки вы работаете на двух серверах (один сервер для внешнего и внутреннего интерфейса). Я создал веб-приложение с системой входа в систему. Есть два основных пути:

"/" – это общедоступная целевая страница с возможностью входа в систему или создания учетной записи.

"/dashboard" — защищенная стартовая страница после входа в систему

Если вы зарегистрируетесь (создаете новую учетную запись), приложение автоматически войдет в систему (и, следовательно, перенаправит вас на «/dashboard»

Все это работает нормально. Чтобы пользователи не могли войти в область порта, вручную введя маршрут /dashboard в окно URL-адреса браузера, я хочу, чтобы он мгновенно проверял, вошел ли пользователь в систему или нет.

Хотя в процессе создания учетной записи устанавливается переменная $_SESSION для вошедшего в систему пользователя, сразу после перенаправления на «/dashboard» (и, следовательно, мгновенной проверки той же переменной $_SESSION, которая была установлена ​​миллисекунды назад), я могу в ответе проверки вы увидите, что эта конкретная переменная $_SESSION не установлена.

Так есть ли что-то особенное, что мне нужно учитывать при размещении серверной части на другом сервере?

Почему я так подчеркиваю другой сервер? Ну, мое приложение уже работало нормально. Раньше я работал с простым JS и простым PHP. С этим было легко работать, потому что весь мой проект был только что помещен в папку htdocs веб-сервера Apache XAMPP.

Я провожу рефакторинг своего приложения с простого JS на Vue 3.

Теперь все по-другому:
[*]Мой Vue CLI запускает веб-сервер для приложения vue на «localhost:8080» [*]Мой бэкэнд остается в htocs, потому что мне нужен сервер, на котором работает php на «localhost» [*]В JS (и Vue) я работаю с fetch(). В качестве конечной точки для Php я использовал относительный путь (поскольку все это было в одном каталоге проекта), например fetch("../src/backend/main.php"), и теперь я использую путь к локальному серверу, например fetch("http/localhost/backend/main.php") [*]Поскольку localhost:8080 для моего серверного интерфейса отличается от «localhost», я установил в своем серверном интерфейсе следующие заголовки: header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); header("Access-Control-Allow-Headers: Content-Type, Credentials"); сеанс_start();
Поскольку это единственные новые вещи, я предполагаю, что моя проблема связана с дополнительным сервером для моей среды разработки, но если вы увидите другую причину, дайте мне знать.

Я хочу подчеркнуть, что любая другая связь между интерфейсом и сервером работает отлично, просто у меня такое ощущение, что теперь сеансы обрабатываются по-другому, и мне хотелось бы знать, почему.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»