以thepointless.com为例,每个用户都会获得一个自动递增的 ID,包括 facebook 用户。外部身份验证服务由 识别username
,其中包含“不规则”用户的 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。在这种情况下,用户的公共图对象是一个简短的、可预测的 URL。
普通用户被限制在他们的用户名前加上http
或https
。password
留空。并userdata
存储由 3rd 方身份验证服务提供的 JSON 或 XML。
服务器端逻辑通常不应信任完全客户端登录。但是,JavaScript 启动登录的服务器端验证通常并不困难。至少在初步的基础上,没有理由不信任 client 上的完全客户端身份验证。
据我所知,没有必要对您的 App ID 保密。需要隐藏的是您的“应用程序秘密”。