Как видно из названия, я пытаюсь запустить Flask вместе с приложением PHP.
Оба они работают под Apache 2.4 на платформе Windows. Для Flask я использую wsgi_module.
Приложение Flask на самом деле является API. Приложение PHP контролирует вход пользователей, следовательно, доступ пользователей к API. Имейте в виду, что я не могу отказаться от использования приложения PHP, потому что оно контролирует гораздо больше, чем функциональность ведения журналов [выставление счетов, доступ к журналам и т. Д.].
Поток это:
Я знаю, что между шагами 2 и 3 PHP должен поделиться с Flask переменной-cookie сеанса [user id], чтобы приложение Flask проверило, вошел ли пользователь в систему.
Все, что я пытаюсь, терпит неудачу. Я не могу передать переменные сеанса PHP в Flask.
Я знаю, что не могу передать переменные PHP во Flask, но я не уверен в этом.
Кто-нибудь пробовал что-то подобное?
Какую стратегию входа пользователя я должен реализовать в вышеупомянутых настройках?
Я не уверен, что это ответ, который вы ищете, но я бы не стал пытаться получить данные сеанса доступа Flask API из PHP. Сеансы и API не сочетаются друг с другом, хорошо разработанный API не требует сессий, вместо этого он на 100% не имеет состояния.
То, что я собираюсь предложить, предполагает, что и PHP, и Flask имеют доступ к пользовательской базе данных. Когда пользователь входит в приложение PHP, создайте для него токен API. Это может быть случайная последовательность символов, uuid, что угодно, если только она уникальна. Запишите токен в пользовательскую базу данных и дату окончания срока действия, если хотите. Процесс входа в систему должен передать этот токен клиенту (конечно, используйте https: //).
Когда клиенту необходимо выполнить вызов API, он должен отправлять этот токен в каждом запросе. Например, вы можете включить его в Authorization
заголовок, или вы также можете использовать собственный заголовок. Flask API получает токен и ищет его в базе данных пользователей. Если он не находит токен, он возвращает 401. Если токен найден, он теперь знает, кто пользователь, без необходимости делиться сессиями с PHP. Для конечных точек API вы будете искать пользователя по токену для каждого запроса.
Надеюсь это поможет!
Других решений пока нет …