php - 如何使用 javascript 登录但使用 php/mysql 存储用户信息?

标签 php mysql facebook facebook-javascript-sdk facebook-php-sdk

我为我的最新应用程序创建了一个基于 javascript 的登录,一切正常。问题是我想将所有用户存储在数据库中,并且不知道如何以 facebook 方式执行此操作。我有很好的 php 和 sql 知识,所以这不是问题。我只需要一些关于如何安全存储数据的建议。

我想要的程序是这样的:

用户使用 javascript 弹出窗口登录 -> 检查 facebook id 是否存在于 mysql 表中。如果没有,保存附加信息 -> 用户已登录

最佳答案

<script type="text/javascript">
window.fbAsyncInit = function() {
    FB.init({
        appId: 'YOUR_APP_ID',
        status: true,
        cookie: true,
        oauth: true
    });
    FB.Event.subscribe('auth.login', function(response) {
        // response returns a JSON object containing data relevant to the logged in user.
        userID = response.authResponse.userID;

        // using jQuery to perform AJAX POST.
        $.post('form_handler.php', {userID: userID}, function() {
            // POST callback
        });
    });
}
</script>

您的 form_handler.php 文件需要设置为从 $_POST 获取 userID 变量。从那里您可以使用 SQL 检查用户是否已经存在等。

如果您担心 userID JavaScript 变量很容易被篡改,我建议使用 form_handler.php 文件中的 PHP SDK 来获取当前的 uid。在此处的 form_handler.php 内部(以最基本的形式)是您需要做的:

<?php
require('facebook.php');
$facebook = new Facebook(array(
    'appId' => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET
));
// get the current logged in userID
$user = $facebook->getUser();

// SQL queries (check if user exists, insert, etc.)

?>

以上代码假定您已将您的应用程序迁移到 oAuth 2.0。

关于php - 如何使用 javascript 登录但使用 php/mysql 存储用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435371/

相关文章:

php - FatFree 路由在生产中不起作用

php - MySQL服务没有自动启动

mysql - 通过 SELECT DISTINCT INSERT 但跳过唯一字段

php - 从mysql表中检索数据时如何忽略空格

javascript - 当 data-mobile-iframe 设置为 true 时,Facebook 共享对话框窗口不会加载

php - Mac Mini 中 Laravel 安装错误

php - 在 WordPress 结构中哪里可以找到 WP_CONTENT_DIR?

php session 与mysql速度

ios - 无法使用 PFFacebookUtilsV4 获取 session token

javascript - Facebook Canvas 应用程序 : Requests with Object