2016-11-19 2 views
1

Введение:
Я делаю проект, который основан на this. A PDO PHP-OOP Вход/Регистрация скрипта с некоторыми определенными функциями, и одним из них является защита CRSF. Защита CRSF в этом проекте делает случайный токен и проверяет его каждый раз, когда пользователь входит в систему/регистрируется.Войти на сайт с охраны CRSF

Проблема:
Так вот улов, как я Войти/зарегистрироваться на этом сайте с другого сайта? Так же, как Facebook Developers - Login API?

Уточнить вещи:
Моя проблема такова:
(все сайты, не так, но это только для демонстрации)


Я в pleaselogmein.com и есть поле, которое вы можете ввести свою регистрационную информацию для thisismyproject.com, и он собирается войти в вас.


или этот пример:
Я нахожусь в stackme.com, и я делаю регистрационную форму для аутентификации Facebook, а Facebook позволяет мне использовать их API для входа в Facebook, когда я использую свое собственное поле на своем собственном веб-сайте.

+0

[CORS] (https://developer.mozilla.org/en-US/docs/Web/HTTP/ Access_control_CORS) используется для междоменных запросов. «Рукопожатия» выполняются при аутентификации, OP посещает сайт A и аутентифицируется, а затем код B get получает код аутентификации, который запрашивает данные через конечную точку на сайте A. CRSF - это когда вы принудительно загружаете файлы cookie на домены через запросы, то есть ** не ** что ты хочешь делать. – KDOT

ответ

0

Как кратко поясняется в разделе комментариев, методология использования - CORS.

CORS


Это идея, что мы вновь прямой запрос, так что становится внутренний запрос, а затем сервер позволяет запрос.

Скажем сайт A является областью мы контактирование войти, запрос от сайта B не нужно начинать. Вместо этого мы перенаправляем OP to Сайт A. После того, как OP аутентифицирует, сайт A будет перенаправлять сайта B с кодом аутентификации (обычно в качестве GET запроса в URI), как это:

www.sitea.com/someController/someAction?someUrl=www.siteb.com&scope=user.Profile 
www.siteb.com/someController/someAction?someAuth=someCode 

Обратите внимание, что в сайта A редиректа, мы также включают в себя некоторые запросы GET в URI, которые содержат объем информации, которую мы запрашиваем, и, кроме того, URI сайта, который вы можете подтвердить в Сайт A.

После Сайт B получает аутентификацию, может быть создано рукопожатие. Запрос cURL может быть отправлен на сайт , содержащий идентификатор A, и ответ о пользователе будет возвращен.

www.siteA.com/someController/someAction?someAuth=someCode 

Что бы вернуть что-то похожее на JSON кодированного ответа, как это:

{username: 'someString', 
recentlyVisited: { 
    someDate, 
    someDate, 
}email: 'someString'} 
+0

Спасибо за ответ. Я нашел трудное время, изучая CORS, есть ли учебник для этого, чтобы помочь мне с логином? – astronomicalXoom

+0

Существует много примеров, это пример [REST-full API] (http://coreymaynard.com/blog/creating-a-restful-api-with-php/). Look-up using oAuth 2.1 – KDOT

+0

Что делать, если это произошло: у меня есть мой a.com (клиент), и у него есть форма входа в систему, форма для входа в систему отправит запрос на b.com (сервер) и проверит, соответствуют ли учетные данные верно. Если учетные данные верны, укажите строку JSON для a.com, которая содержит информацию о пользователе. Могу ли я загрузить вас или вы можете дать мне ссылку на ** аутентификацию ** Учебное пособие CORS с использованием PHP и JSON + AJAX? – astronomicalXoom