1

我有一个具有offline_access 权限的应用程序,我通过php sdk 获取访问令牌并将访问令牌存储在我的数据库中。

此应用程序通过与 facebook 交互的网站运行,但我们不要求用户在使用我们的网站时登录 facebook。也就是说,登录和使用我们的网站不需要登录 facebook。这就是我们使用offline_access 权限的原因。

现在,问题是:如何在 javascript 中使用访问令牌?

显而易见的解决方案是通过 php echo 在网页中插入访问令牌,这是不安全的,因为我们目前不通过 h​​ttps 提供页面,因此令牌以纯文本形式传输。此外,如果某些用户无人看管他的计算机,攻击者可以使用它并通过查看站点源来获取令牌。

是否有一种简单的方法可以安全地使用此访问令牌?还是我错过了什么?

4

3 回答 3

0

在 JavaScript 中安全使用访问令牌的唯一方法是对 PHP 脚本执行 AJAX 请求。您永远不会希望该令牌在浏览器领域中四处飘荡。

于 2011-12-27T15:29:13.977 回答
0

您可以从该网页对 php 脚本(将使用离线令牌)进行 AJAX 调用。

于 2011-12-27T17:33:16.623 回答
0

如果您的问题是您不想使用 GET 从服务器调用 Facebook api,则可以使用 POST。我的意思是:你在服务器上的页面必须调用 Facebook api 所以,例如在用户页面上写评论,你应该这样做

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>
于 2012-02-18T14:03:38.967 回答