0

我的网站集成了一个登录系统,但我是一名视频游戏程序员,想将我的网站集成到我的游戏中。我正在使用 PHP 来检查用户的密码,并假设它返回一个随机用户 ID,我以后可以使用它来验证用户。我正在从游戏向网络服务器发出 POST 请求以验证用户信息,我无法为用户身份验证托管专用服务器,并且我当前的网络主机不允许远程访问 MYSQL 数据库,所以这是我唯一的选项。这是给我的最后一点代码。

$userid = $this->generateRandID();
$time = time();

$database->updateUserField($_POST["username"], "userid", $userid);
$database->addActiveUser($_POST["username"], $time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);
echo($userid);

假设将用户添加为活动用户并更新mysql数据库中的用户ID字段,然后为我回显用户ID然后保存在游戏中。问题是回显的用户标识似乎与数据库中的用户标识不同。这是 updateUserField,它对我来说只是一个快捷方式,所以如果我出于任何原因需要更改它,我不必更改很多代码行。

function updateUserField($username, $field, $value){
    return mysqli_query( $this->connection, "UPDATE ".TBL_USERS." SET ".$field." = '$value' WHERE username = '$username'");
}
4

1 回答 1

0

从您的评论看来,您尝试用随机数替换用户 ID 的原因是为了向您的应用程序添加一定的安全级别。我相信更好的方法是将会话与用户数据持久性分开处理。目前,管理第三方应用程序对您系统的编程访问的行业标准是 oAuth。您可以查看官方 oAuth 文档或oAuth初学者指南。虽然标准 oAuth 工作流程假定用户将直接在您网站上的网页上进行身份验证,但也有“双腿 oAuth”这允许用户在第三方应用程序本身(在您的情况下,您的游戏)中提供他们的凭据。实施 oAuth 的一些原因是安全性、授权与数据的分离或站点的目的、客户端和提供程序库支持

于 2012-06-25T03:04:17.017 回答