Использование токена доступа facebook с offline_access и javascript

У меня есть приложение с разрешением offline_access, и я получаю токен доступа через php sdk и сохраняю токен доступа в своей базе данных.

Это приложение работает через веб-сайт, взаимодействующий с facebook, но мы не требуем, чтобы пользователь входил в систему facebook при использовании нашего сайта. То есть для авторизации и использования нашего сайта не требуется авторизоваться в facebook. Именно поэтому мы используем разрешение offline_access.

Теперь вопрос: как использовать токен доступа в javascript?

Очевидное решение, заключающееся в том, чтобы вставить токен доступа на веб-страницу через php-эхо, было бы небезопасным, потому что в настоящее время мы не обслуживаем страницы через https, и поэтому токен перемещается в виде простого текста. Более того, если какой-то пользователь оставил свой компьютер без присмотра, злоумышленник мог воспользоваться им и получить токен, просто заглянув в исходный код сайта.

Есть ли простой способ безопасного использования этого токена доступа? Или я что-то упускаю?


comment
Стоит отметить, что офлайн-доступ устарел. Facebook написал в блоге о том, как продлить токены доступа с истекшим сроком действия, что должно ответить на некоторые ваши вопросы.   -  person Owen Blacker    schedule 18.02.2012


Ответы (3)


Единственный способ безопасно использовать токен доступа с вашим JavaScript — выполнять AJAX-запросы к PHP-скриптам. Вы никогда не захотите, чтобы этот токен плавал в браузере.

person Josh Smith    schedule 27.12.2011
comment
Я представлял, что это то, что я должен был бы сделать. Спасибо за четкий ответ. - person felipe; 28.12.2011

Вы можете сделать AJAX-вызов php-скрипту (который будет использовать автономный токен) с этой веб-страницы.

person Salman    schedule 27.12.2011

Если ваша проблема в том, что вы не хотите вызывать API Facebook со своего сервера с помощью GET, вы можете использовать POST. Я имею в виду: ваша страница на сервере должна вызывать API Facebook, поэтому, например, чтобы написать комментарий на странице пользователя, вы должны сделать

https://graph.facebook.com/userID/feed?access_token=XXXXXXXXXXX 

но таким образом access_token отображается в строке URL-адреса браузера. Чтобы скрыть параметры, вы можете использовать скрытую форму, использующую POST, и автоматически отправлять ее с помощью javascript.

<form action="https://graph.facebook.com/userID/feed" name="formNAME" method="POST">               
 <input type="hidden" name="access_token" value="XXXX">     
 <input type="hidden" name="description" value="blablabla">   
</form>

<script type="text/javascript">     
 document.formNAME.submit();    
 return;   
</script>
person DeLac    schedule 18.02.2012