Для моего вопроса, скажем, есть веб-приложение и сайт на разных доменах. Пользователь может войти в веб-приложение, в котором он находится на протяжении всего сеанса, или использовать cookie-файл, если пользователь хочет, чтобы его запомнили на 30 дней. Очень стандартный.
Теперь с сайта мне нужно проверить, вошел ли пользователь в веб-приложение (в другом домене). У меня явно нет прямого доступа к сеансу браузера или файлам cookie для веб-приложения. Я считаю, что мой единственный вариант - это сделать запрос JSONP из JavaScript сайта на URL в домене веб-приложения. Затем веб-приложение отвечает либо 1, либо 0, в зависимости от того, вошел ли пользователь в систему. Я направляюсь в правильном направлении? В любом случае я могу выполнить запрос JSONP и получить ответ без особых затруднений.
Несмотря на то, что у меня есть значение 1 или 0, зарегистрированное в JavaScript, мне нужен доступ к значению в бэкэнд-коде сайта (Ruby, PHP и т. Д.). Теперь мы действительно добрались до сути моего вопроса. Это значение может быть сохранено в файле cookie с помощью JavaScript, но что мешает злоумышленнику просто установить этот файл cookie вручную? Как безопасно передать это значение из ответа JSONP в мой внутренний код?
Несколько заключительных замечаний:
- Я не могу выполнить запрос к URL-адресу веб-приложения из внутреннего кода сайта (Ruby, PHP), поскольку агент пользователя является сервером, а не браузер, который, как известно веб-приложению, вошел в систему или нет.
- Я считаю, что Facebook Login / Connect работает аналогично этому, но трудно понять все, что происходит, глядя на код. Объяснение шаблона (если это шаблон) было бы наиболее полезным!
Спасибо за вашу помощь!