1

facebook的访问令牌我有一个具有offline_access权限的应用程序,我获得通过PHP SDK的访问令牌和访问令牌存储在我的数据库。使用与offline_access和javascript

此应用程序通过一个网站,与Facebook交互,但我们并不需要用户在使用我们的网站,在登录到Facebook。也就是说,要登录并使用我们的网站,不需要登录Facebook。这是我们使用offline_access权限的原因。

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

明显的解决方案,这是通过一个PHP回声插入网页的访问令牌,因为我们目前不通过HTTPS网页,因此该令牌以纯文本旅行将是不安全的。而且,如果某个用户无人看管他的计算机,攻击者可以使用它并通过查看站点源来获取该令牌。

有没有简单的方法来安全地使用这个访问令牌?或者我错过了什么?

+0

值得一提的是[离线访问正在被弃用](https://developers.facebook.com/docs/离线访问贬低/)。 Facebook已经发表了关于[如何扩展过期访问令牌]的博客(https://developers.facebook.com/blog/post/500/),它应该回答你的一些问题。 – 2012-02-18 12:59:51

回答

0

安全地使用你的JavaScript访问令牌是做AJAX请求到PHP脚本的唯一途径。你永远不想让这个令牌在浏览器域中浮动。

+0

我想象这是我必须做的。感谢您的明确答案。 – felipe 2011-12-27 20:36:46

0

可以使一个AJAX调用PHP脚本(这将使用脱机令牌)从该网页。

0

如果你的问题是,你不想打电话从您的服务器Facebook的API使用GET,你可以使用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>