2012-06-24 2 views
0

У меня есть система входа в систему, встроенная в мой сайт, но я программист видеоигр и хочу интегрировать свой сайт в свои игры. Я использую PHP для проверки пароля пользователя и его предположения, чтобы вернуть случайный идентификатор пользователя, который я могу использовать позже, чтобы проверить пользователя. Я делаю запрос POST из игры на веб-сервер для проверки информации пользователя, я не могу разместить выделенный сервер для пользователя auth, и мой текущий веб-хост не позволяет удаленный доступ к базе данных MYSQL, так что это мой единственный вариант. Вот последний бит кода, который дает мне возможность.PHP случайный сгенерированный идентификатор не соответствует базе данных

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

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

Это, предполагают, чтобы добавить пользователя в качестве активного пользователя и обновления идента поле в базе данных MySQL, а затем повторить идентификатор пользователя для меня, чтобы потом сохранить в игре. Проблема в том, что эховое имя пользователя не похоже на то, что указано в базе данных. Здесь updateUserField, это просто ярлык для меня, поэтому мне не нужно менять много строк кода, если мне нужно изменить его по любой причине.

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

для здравомыслия людей, которые должны прочитать ваш код, пожалуйста, используйте sprintf – Galen

+0

@Galen Почему это имеет значение? Я не понимаю, как это будет хорошо. – legobear154

+0

Это сделает ваш код более удобочитаемым – Galen

ответ

0

От Вашего comment это звучит как-то причинам вы пытаетесь заменить идентификаторы пользователей со случайными числами, чтобы добавить определенный уровень безопасности для вашего приложения. Я считаю, что лучше всего будет обрабатывать сеансы отдельно от ваших пользовательских данных. В настоящий момент отраслевым стандартом в отношении программного доступа сторонних приложений к вашей системе является oAuth. Вы можете проверить official oAuth docs или beginner's guide to oAuth. Хотя стандартный рабочий процесс oAuth предполагает, что пользователь будет аутентифицироваться непосредственно на веб-странице вашего сайта, есть также "two-legged oAuth", который позволяет пользователю предоставлять свои учетные данные в самом стороннем приложении (в вашем случае, в вашей игре). Некоторые из причин внедрения oAuth - это безопасность, разделение авторизации с данными или целью вашего сайта, клиента и провайдера library support.

+0

Проблема, или мне кажется, это то, что для меня использовать oAuth с php мне нужно установить расширение на сервер. Я не могу этого сделать, потому что у меня нет доступа к серверу, и я тоже не могу подключиться к сокету. Я в этом затруднился.Разумеется, скажите мне, что я ошибаюсь, если я, но из того, что я видел на их сайте, я в настоящее время не могу реализовать oAuth на своем веб-сайте. Я действительно начинаю полностью переписывать систему учетных записей из-за этой проблемы, которую я испытываю. – legobear154

Смежные вопросы