php - Facebook用户信息存储在数据库中

标签 php mysql facebook

我的网站提供用户创建帐户并使用 facebook 登录。用户表包含: userId ( generated by $userId = uniqid(rand(), true; ,如果用户创建自己的帐户)。密码、盐、电子邮件、加入日期。

第一个问题:

我不确定我用 Facebook 所做的事情是否安全。现在我正在从 facebook 获取用户 ID 并使用 xmlhttpRequest 对象将其发送到服务器。然后服务器将其存储在 userID 下,并将其他列留空。

第二个问题:

Facebook 用户 ID 与 uniquid(rand(), true) 生成的普通帐户用户 ID 重叠的可能性是否很大?

第三个问题:

使用客户端登录安全吗?我的意思是,甚至我的 App ID 也会被用户看到。

第四个问题: 为了判断该条目是Facebook帐户还是普通帐户,我应该在数据库中添加另一列,true=facebook帐户,false=普通帐户。或者我应该检查特定帐户的密码列是否为空?

最佳答案

使用thepointless.com例如,每个用户都会获得一个自动递增的 ID,包括 facebook 用户。外部身份验证服务通过用户名进行识别,其中包含“非正规”用户的 URL:

+----------+------------------+------+-----+-------------------+----------------+
| Field    | Type             | Null | Key | Default           | Extra          |
+----------+------------------+------+-----+-------------------+----------------+
| user_id  | int(10) unsigned | NO   | PRI | NULL              | auto_increment |
| username | varchar(255)     | YES  | UNI | NULL              |                |
| password | varchar(255)     | YES  |     | NULL              |                |
| created  | timestamp        | NO   |     | CURRENT_TIMESTAMP |                |
| userdata | mediumtext       | YES  |     | NULL              |                |
| admin    | tinyint(1)       | YES  |     | 0                 |                |
| name     | varchar(765)     | YES  |     | NULL              |                |
+----------+------------------+------+-----+-------------------+----------------+

Facebook 用户的用户名是其图表数据的 URL,例如 http://graph.facebook.com/8643372。您的系统中没有必要指向真实的东西,只要它标识域和外部[唯一] ID 即可。在这种情况下,用户的公共(public)图形对象是一个简短的、可预测的 URL。

普通用户不能在用户名前添加 httphttps 前缀。 密码留空。 userdata 存储第三方身份验证服务提供的 JSON 或 XML。

服务器端逻辑通常不应该信任完全客户端登录。但是,服务器端验证 JavaScript 发起的登录通常并不困难。没有理由不相信(至少在初步基础上)客户端的完全客户端身份验证。

据我所知,您的 App ID 没有必要保密。这是您需要保持 Conceal 的“应用 secret ”。

关于php - Facebook用户信息存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723208/

相关文章:

php - 为什么我的 FB 应用程序在 IE 中永远循环?

javascript - tinymce图片上传php插件什么的

php - Mysql多个OR语句

php - INSERT ... ON DUPLICATE KEY UPDATE - 不更新特定字段?

php - SQLSTATE[42S22] : Column not found: 1054 Unknown column laravel 5. 1

Facebook SDK 4.4 和 Swift - 入门指南

php - 从一种 json 格式转换为另一种格式

javascript - POST 请求中的 500

php - 列中的最大值

facebook - 新的 Facebook 开发人员界面 : 1024x1024 App Icon