Всем привет! Есть сайт (создан на паттерне проектирования MVC) на котором реализован механизм авторизации. В тестовом задании меня попросили реализовать следующее: Открыть параллельно приложение в новой вкладке. Разлогиниться в новой вкладке. В этой вкладке не должно быть возможности редактировать задачу. Вернуться в предыдущую вкладку. Отредактировать задачу и сохранить. Отредактированная задача не должна быть сохранена. Приложение должно запросить авторизацию. Первое что приходит на ум, сделать JavaScript файл, который бы обращался к PHP файл, а тот в свою очередь сообщал о наличии в сессии переменной о авторизации. Просьба, подскажите пример. Хотя мне кажется, задача больше для JavaScript, чем для PHP.
Вообще js не при чем. Если нормальная авторизация, нормальные mvc, контролёры которого проверяют авторизацию там где нужно, то оно все так и будет работать При выходе в новой вкладке убьется сессия с авторизацией - отправляй на форму входа Ну а старая вкладка хоть и пошлет данные контроллеру - там же авторизация проверяется перед записью, так ведь?? И не увидит он ее и отошлет на стр логина
Просто перед тем как вносить изменения смотреть зареган ли пользователь, и все. Вот смотри, для примера: 1. У тебя есть счет в банке 1000000. Ты зарегался на их онлайн страницу. Открыл эту же вкладку на второй странице. На одной нажал перевести деньги. Вернулся на другую, поидее у тебя там деньги еще не переведены. Но ты снова нажал перевести деньги. И вот после нажатия кнопки естественно банк еще раз проверит, а есть ли деньги. 2. Или еще ситуация, ты зашел в интернет магазин, увидел товар где написано на складе осталось 1шт. Ты такой умный открыл этот же сайт во второй вкладке. Купил его в первой вкладке, вернулся во вторую, естественно меню старое. Нажал купить, система после нажатия проверит, а этот товар точно еще есть на складе или нет. JS тут вообще не причем, просто надо проверять перед тем как сделать какую то операцию.
@troinfo12, авторизация привязана к сессии, сессия привязана к сессионному идентификатору, сессионный идентификатор сохраняется в кукисах. При логауте должна разрываться связь авторизация - сессия. Кукисы остаются, сессия остаётся, но в сессии уже нет данных авторизации, поэтому должен быть запрет на редактирование сохранение и тд. Задача я так понимаю сводиться к перенаправлению на страницу авторизации.
Открывать параллельно приложение в новой вкладке и т.д. нужно ручками. Запрограммировать вам нужно только это: Что норма для авторизации. Т.е. вам нужно просто сделать авторизацию. А в задании всего лишь описан ручной тест (эксперимент). --- Добавлено --- P.S. Если все уже реализовано, вас просто попросили провести эксперимент. Возможно, заподозрили, что авторизация не работает/работает не так, как должна.
не пытайся решать проблемы доступа на javascript. есть аксиома: всё что приходит от пользователя (из браузера или другого клиента), может быть подделано. оно не заслуживает доверия. я уверен что авторы тестового задания ждут от тебя ровно обратного: понимания что авторизация происходит на сервере. твоя задача сделать старое значение в куке нерабочим. сессия должна умереть на сервере. если для идентификации пользователя используется стандартная сессия PHP, то вот твоя палочка-выручалочка: https://www.php.net/manual/ru/function.session-destroy ну прям как доктор прописал! тебе именно этот "побочный эффект" и нужен --- Добавлено --- P.S. в раздел "Решения, алгоритмы" ты можешь добавлять решения и алгоритмы. Внезапно™! А вопросы "как сделать то или это" помещай в другие разделы. Тема перемещена.