【问题标题】:Using the facebook access token with offline_access and javascript将 facebook 访问令牌与 offline_access 和 javascript 一起使用
【发布时间】:2011-12-27 15:20:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: javascript facebook facebook-graph-api facebook-javascript-sdk facebook-authentication


【解决方案1】:

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

【讨论】:

  • 我想这是我必须要做的。感谢您的明确答复。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    如果您的问题是您不想使用 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 2014-02-05
      • 1970-01-01
      • 2012-10-02
      • 2014-06-07
      • 2020-11-27
      • 2017-11-13
      相关资源
      最近更新 更多