Сессия аутентификации Steam

Как вы знаете, steam предоставляет скрипт, позволяющий людям подключаться к вашему сайту через базу данных steam.
Я хотел бы, чтобы я обновил страницу, и мне больше не нужно было входить в систему. Но с Steamapi я понятия не имею, как это сделать.

Мой код:

<?php
require 'includes/lightopenid/openid.php';
include_once("db.php");

$_STEAMAPI = "MYAPI";
try {
$openid = new LightOpenID('http://test/dev1/index.php?id=1');
if(!$openid->mode) {
if(isset($_GET['login'])) {
$openid->identity = 'http://steamcommunity.com/openid/?l=english';
header('Location: ' . $openid->authUrl());
} else {

echo "<form action='?login' method='post'>";
echo "<input type='image' src='http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_small.png'>";
echo "</form>";
}
} elseif($openid->mode == 'cancel') {
echo 'User has canceled authentication!';
} else {
if($openid->validate()) {
$id = $openid->identity;
$ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
preg_match($ptn, $id, $matches);

$url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$_STEAMAPI&steamids=$matches[1]";
$json_object= file_get_contents($url);
$json_decoded = json_decode($json_object);

foreach ($json_decoded->response->players as $player)
{
$sql_fetch_id = "SELECT * FROM member WHERE steamid = '$player->steamid'";
$query_id = mysqli_query($db, $sql_fetch_id);

if (mysqli_num_rows($query_id) == 0) {
$sql_steam = "INSERT INTO member (name, steamid, avatar) VALUES  ('$player->personaname', '$player->steamid', '$player->avatar')";
mysqli_query($db, $sql_steam);
}
echo "Welcome back <b>" . $player->personaname . "</br>";
}
} else {
echo "User is not logged in.\n";
}
}
} catch(ErrorException $e) {
echo $e->getMessage();
}
?>

0

Решение

Общий подход заключается в настройке session — в PHP вы можете использовать $_SESSION хранить эту информацию. Это позволяет хранить постоянные данные на стороне сервера для каждого пользователя.

Получив пользовательский SteamID64, сохраните его в $_SESSIONНапример:

$_SESSION['steamid'] = $someVal;

Вы можете проверить, установлен ли он при каждом последующем запросе, и действовать соответствующим образом.

Вы можете увидеть полный пример здесь: https://github.com/SmItH197/SteamAuthentication

(Отказ от ответственности: я не автор библиотеки.)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]