如何从php实现的js脚本传递访问令牌到扩展的localStorage

How to pass access token from php implemented js script to localStorage of extension

本文关键字:访问令牌 localStorage 扩展 js php 实现 脚本      更新时间:2023-09-26

我正在制作一个使用Facebook php和js SDK的浏览器扩展。

我需要获得用户访问令牌,但我不能在本地使用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方法,而不是字符串。所以我认为我犯了一个错误,从token对象中获取字符串

好的,我得到了一个解决方案,使用第二个选项在我的原始帖子(使用JavaScriptHelper函数)。

$access_token->getValue();

这就是我对访问令牌对象所做的一切,以获得访问令牌字符串。

顺便说一下,这对于获取访问令牌对象的可用方法非常有帮助:
array get_class_methods ( mixed $class_name )