javascript - 如何使用 javascript 安全地实现 fb 登录

标签 javascript jquery facebook web-applications authentication

我正在我的 web 项目中使用 Jquery 实现 facebook 登录。一切都很好,但我担心人们可能会尝试进行黑客攻击,因为一切都在 Firebug 中可见。我的意思是,任何人都可以看到响应 facebook 请求而访问的 URL;数据随时可用,app_id 嵌入在 js 文件本身中。所以,我想我可能做错了事,所以我来这里是为了弄清楚这一点。因此,据我所知,Facebook 登录的过程如下:

->User Clicks on 'FB Login'
->Request goes to Fb with App ID
->Fb cross checks for App credentials
->Once authorised, it checks for user's credentials
->Asks user to log in if he/she isn't logged in->Returns the requested data by the app for the user
->Calls the call back function and that's where we come back again in scene.

在上面的过程中,让我感到困惑的是,如果用户可以看到在最后一步中将什么数据传递到什么 URL,他难道不能简单地调用一个假脚本到该 URL 并恶意登录吗?我知道有一个 access_token 但我很困惑如何在后端使用该访问 token (或者,据我所知,其他任何东西)以确保即将到来的请求仅来自 Facebook 登录成功时的回调函数? 提前致谢

最佳答案

我个人的做法是使用PHP SDK再次检查用户是否登录:https://github.com/facebook/facebook-php-sdk

您可以只将用户的 Facebook ID 添加到 AJAX 调用,检查服务器端用户是否在脚本开头是正确的:

require 'facebook-php-sdk/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'YOUR_APP_ID',
  'secret' => 'YOUR_APP_SECRET',
));

// Get User ID
$user = $facebook->getUser();
if ($user && $user === $_GET['fbid']) {
  ...
}

关于javascript - 如何使用 javascript 安全地实现 fb 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22143532/

相关文章:

php - 通过 PHP SDK 验证 Facebook API 访问 token 和用户 ID?

iframe 中的 Facebook 表单应用程序丢失了 Windows 平台中 Safari 浏览器的 cookie

javascript - 当用户在内部制作 "mouseon"时代码悬停外部 html 元素?

javascript - 想要使用 jquery 获取最接近的内部选中单选按钮的值

jquery - jQuery 中的淡出

jquery - $.animate 与 $.fadeIn 的平滑度

javascript - 一页上的多个 onchange ="this.form.submit()"不起作用

javascript - 使用 Ramda 拒绝 promise

javascript - 当鼠标悬停在另一个 div 上时,使用淡入淡出等任何效果更改 div 中的图像

iPhone:来自网络的缓存个人资料图像 - 如何找出远程图像已更改?