Я предполагаю, что мы находимся в типичном одностраничном контексте приложения / веб-приложения, с раздельными интерфейсными и внутренними (api) проектами, взаимодействующими через (асинхронные) HTTP-запросы:
В этом случае: Да, это будет безопасно, потому что ваш интерфейс не содержит никаких защищенных данных. Сервер отвечает только за отправку данных, которые разрешено иметь клиенту.
В этом случае не имеет значения, что именно сервер отвечает на ваш логин. Это может быть JSON с успехом и токен или текущий объект пользователя и cookie. Важной частью является то, что ваш интерфейс теперь знает секрет, который дал ему сервер. Теперь веб-интерфейс может с радостью переключиться на другое представление (помните, что представление не имеет изначально никаких данных) и запросить некоторые защищенные данные, которые он хочет отобразить, с полученным секретом.
Если бы вы обманули интерфейсную часть, чтобы подумать, что вы вошли в систему, запрос сейчас не будет выполнен (потому что вы никогда не получали секрет от сервера), и вы будете сидеть там, уставившись на пустой пользовательский интерфейс и, возможно, сообщение об ошибке. .
К вашему последнему вопросу, если вы вынуждены PHP (или около того): Нет, но да. Вам понадобится что-то на вашей стороне сервера, которое знает о ваших пользователях и их привилегиях, что-то, что решает, кому разрешено просматривать или изменять данные, но что-то не обязательно должно быть PHP. Обычными серверными языками для веб-приложений будут Node.js, PHP и Python, но вы ни в коем случае не ограничены ими.