0

Я делаю расширение для браузера, использующего PHP php и js SDK.Как передать токен доступа из PHP, реализованного js-скрипта, на localStorage расширения

Мне нужно получить токен доступа пользователя, но я не могу использовать js SDK локально (поскольку facebook не предлагает напрямую подключаться из внутреннего расширения), поэтому я должен реализовать js sdk в php, который находится на моем сервере (Я не могу использовать php sdk здесь, так как он не разрешает автоматический вход через файлы cookie, но мне это нужно).

Итак, есть ли безопасный способ передачи токена доступа из части скрипта js в моем php на мой localStorage? Я мог бы предположить, используя что-то вроде parent.postMessage (токен, chrome: // chrome_extension_id), это безопасно? Или есть прямой способ защитить что-то от localStorage расширения?

Другим способом было бы использовать Facebook PHP SDK JavaScriptHelper developers.facebook.com

Я уже попробовал этот код:

$fb = new Facebook\Facebook([/*...*/]); 
$jsHelper = $fb->getJavaScriptHelper(); 
$access_token = $jsHelper->getAccessToken(); 
$_SESSION['fb_user_token'] = (string) $access_token; 

/*...*/ 

$response = $fb->get("/?id=$url&fields=share{comment_count}", $_SESSION['_fb_user_token']); 

Но это не работает, так как объект передается методу GET на end, а не строка. Поэтому я думаю, что я ошибся, получив строку от объекта токена.

ответ

0

Хорошо, у меня есть решение, используя второй вариант в моем исходном сообщении (используя функцию JavaScriptHelper).

$access_token->getValue(); 

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

Кстати, это было очень полезно, чтобы получить доступные методы маркера объекта доступа:

array get_class_methods (mixed $class_name)