[英]Create and/or Configure Google, FB Apps via API (for user login and subscription)
[英]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登录功能。 如果用户已连接并通过验证,我将通过fb.api('/me')
将ajax请求发送到包含给定ID的服务器。 但是任何人都可以更改代码,并以可以使用其他人的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哈希值加上一些特殊的盐,这些盐只在您的php代码中不会在Java脚本中显示
举个例子
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
}
这段代码是为了显示想法,而不是使用完整的代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.