FB登录API - 检查用户是否实际上是用户
FB Login API - Checking if the user is actually the user
FB.Event.subscribe('auth.authResponseChange', function(response) {
if (response.status === 'connected') {
FB.api('/me', function(response) {
switchTo('loggedin');
// connected & ok
});
}
else if (response.status === 'not_authorized') {
switchTo('loggedout');
// connected but not ok
FB.login();
}
else
{
switchTo('loggedout');
// not connected
FB.login();
}
});
所以这里有一个普通的facebook javascript登录函数。如果用户已连接并验证,我将ajax请求发送到包含给定ID的服务器fb.api('/me')
。但是任何人都可以更改代码,并以他们可以使用其他人的ID并将其发送到服务器的方式编辑代码。
如何验证通过javascript登录的用户是实际用户,而不仅仅是更改代码的人?
一个非常安全的方法是使用 PHP SDK: https://github.com/facebook/facebook-php-sdk
看"用法":
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 is logged in
} else {
//user is not logged in
}
例如,您可以在使用 JS SDK 登录后重新加载页面,并在加载页面之前使用 PHP SDK 进行检查。
好的,
因为你使用PHP作为后端语言
我建议除了发送用户 id 之外,您还可以发送带有一些特殊盐的 id 哈希,这些盐在您的 java 脚本中没有显示在您的 php 代码中
作为示例
var url = "www.example.com/?id=SOME_ID&secret=<?php echo md5(SOME_ID.SECRET)";
和后端
$secret = $_GET['secret'];
$id = $_GET['id'];
if (md5($id.SECRET) == $secret){
//User is ok here
}else{
//Some one missing around
}
此代码用于显示想法而不是要使用的完整代码
相关文章:
- 如何使用jquery确定用户是否年满18岁
- javascript跨浏览器确定用户是否滚动到页面底部
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 如何检查用户是否使用$routeChangeStart登录angularjs
- 如何检测用户是否在同一会话中打开了多个窗口或选项卡
- 询问用户是否要打开地理位置
- 检测用户是否具有打印功能
- 检查用户是否在Orchard CMS中获得授权
- HTML.如何检查用户是否在表单中输入了文本
- 如何检查用户是否开始关注
- 检查用户是否正在访问纯根url
- 检测用户是否有从其重定向的意图's页
- 如何发现用户是否使用jQuery滚动到HTML容器的末尾
- 使用jQuery检测用户是否退出全屏视频
- 检查用户是否具有角色分析云代码
- 如何检查用户是否已经在NodeJs-Mongoose中关注其他用户
- 检查请求的用户是否是django中的所有者
- 如何检测用户是否移动了滚动条
- Facebook JavaScript SDK 检查用户是否为粉丝(错误:指定的版本无效)
- 有没有办法检测用户是否真的远离计算机