Код ниже - это «Вход в систему для веб-сайта с помощью JavaScript SDK», который отправит адрес электронной почты и имя браузера на клиентский javascript.
Но как я могу получить адрес электронной почты и имя POSted для файла PHP на моем сервере веб-сайта, так что я могу зарегистрировать пользователя с помощью PHP?Facebook Javascript SDK Login - POST Response to PHP
function statusChangeCallback(response) {
if (response.status === 'connected') {
testAPI();
} else if (response.status === 'not_authorized') {
document.getElementById('status').innerHTML = 'Please log ' + 'into this app.';
} else {
document.getElementById('status').innerHTML = 'Please log ' + 'into Facebook.';
}
}
function checkLoginState() {
FB.getLoginStatus(function(response){
statusChangeCallback(response);
});
}
function testAPI() {
FB.api('/me', {fields: 'email,name'},function(response) {
document.getElementById('status').innerHTML = 'Thanks for logging in again, ' + JSON.stringify(response) + '!<br/><img src="https://graph.facebook.com/'+response.id+'/picture?width=300" />';
});
}
$(document).ready(function() {
$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/en_US/sdk.js', function(){
FB.init({
appId: '211867502496511',
cookie: true, // enable cookies to allow the server to access the session
xfbml: true, // parse social plugins on this page
version: 'v2.5' // or v2.0, v2.1, v2.2, v2.3
});
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
});
});
function doalog(){
FB.login(function(response){
statusChangeCallback(response);
});
}
Да, но это позволит хакеру войти под любым именем он разыскивал угон JavaScript. Он мог войти под своим именем, но затем переслать javascript под другой – user2790911
@ user2790911 Если я не ошибаюсь, API Facebook предоставляет больше информации, чем просто имя и адрес электронной почты, включая уникальный идентификатор. Независимо от того, что вы делаете на своей веб-странице **, у вас будет конечная точка, которая принимает эти запросы **, поэтому, если хакер действительно хотел, чтобы он просто мог отправить запрос из своей собственной программы. Я рекомендую вам прочитать раздел [Практические рекомендации API Facebook] (https://developers.facebook.com/docs/facebook-login/best-practices). Использование XMLHttpRequest не нарушает их. –
Если аутентификация происходит от Facebook до сервера веб-сайта через клиента, клиент может перехватить сообщение и изменить его. Если Facebook отправит сообщение прямо на сервер, сказав, что они проверили подлинность [email protected], и безопасно зарегистрировать его, тогда хакер не сможет перехватить сообщение. – user2790911