Добрый день. Делаю авторизацию через Steam.
Цитата:Логика:
Пользователь входит через steam, я получаю его steam_id, мне надо найти этот steam_id в уже зарегистрированных пользователях и есть есть, то авторизировать, если нет, то создать пользователя.
PHP:
скопировать код в буфер обмена
public function SteamAuth() { try { require ('openid.php'); $openid = new LightOpenID('shop'); if (!$user_id) { if (!$openid->mode) { if (isset($_GET['login'])) { $openid->identity = 'http://steamcommunity.com/openid'; header('Location: ' . $openid->authUrl()); } echo "<form action=\"?login\" method=\"post\"> <input type=\"image\" src=\"http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_small.png\"></form>"; } elseif ($openid->mode == 'cancel') { echo Core::msg_show(__('SteamСanceledAuthentication')); } else { if ($openid->validate()) { $id = $openid->identity; $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/"; $_SESSION['steamid'] = $matches[1]; $valid = new Validator ($_SESSION['steamid'], array('steamid' => 'Индетификатор')); $rules = array($_SESSION['steamid'], 'in_list', array('table' => 'user', 'row' => 'steamid')); if ($valid->check($rules) == TRUE) { //тут пользователь есть, надо найти его id и авторизировать } else { } } else { echo Core::msg_show(__('SteamBadCheck')); } } } } catch (ErrorException $e) { echo $e->getMessage(); } }
Я вот нашел его steam_id и хочу авторизировать через его id, но как взять id не знаю. Подскажите пожалуйста. Или же другую логику, если есть лучше.(Отредактировано автором: 18 Февраля, 2015 - 12:10:51)
|