To use this package you need to install php extension
protobuf
. Installation instructions are below.
This package provides the ability to authorize to the Steam using Google Protobuf. Support PHP 7+ and PHP 8+.
- Run this text in a console to install this package from Packagist:
composer require allyans3/protobuf-steam-auth
- Copy folder
protobuf-ext
from/vendor/allyans3/protobuf-steam-auth
to your project:
cp -a /vendor/allyans3/protobuf-steam-auth/protobuf-ext .
- Build php extension with next commands choosing between
php 7
andphp 8
(Thanks to Tankonyako):
cd protobuf-ext/php7 // For PHP 7
cd protobuf-ext/php8 // For PHP 8
For Linux/Mac:
phpize
./configure
make
make install
For Windows see this Youtube video:
- Add line
extension=protobuf.so
to your php.ini file
use SteamAuth\SteamAuth;
require "vendor/autoload.php";
$auth = new SteamAuth('login', 'password', 'shared_secret');
// For proxy
$auth->setProxy($proxy);
// For WebBrowser
$auth->login();
// or for MobileApp
$auth->loginMobile();
// You can check if you are authorized
$auth->isAuthorized();
// If auth `true` you can get cookies
$auth->getCookies();
// or by host
$auth->getCookiesByHost();
// Getting data for platform type
$auth->getDataForPlatformType(1) // 1 => Steam Client, 2 => Web Browser, 3 => Mobile App
// Updating `access_token` with `refresh_token`
$auth->updateAccessToken($refreshToken)
// Decoding JWT
$auth->decodeJWT($token)
By default, cookie saves in $cookieStorage
attribute and can be retrieved by getCookies()
or getCookiesByHost()
methods.
Optional, you can specify the path to your cookie file in cookie_file
key.
Also, you can send your cookies as array to cookie_storage
key.
use SteamAuth\SteamAuth;
require "vendor/autoload.php";
$cookieOptions = [
'cookie_file' => 'path_to_cookie_file',
'cookie_storage' => [
"steamcommunity.com" => [
"sessionid" => "*******",
"steamCountry" => "*******",
"steamLoginSecure" => "*******"
],
"store.steampowered.com" => [
"sessionid" => "*******",
"steamLoginSecure" => "*******"
],
"help.steampowered.com" => [
"sessionid" => "*******",
"steamLoginSecure" => "*******"
],
"steam.tv" => [
"sessionid" => "*******",
"steamCountry" => "*******",
"steamLoginSecure" => "*******"
],
"checkout.steampowered.com" => [
"steamLoginSecure" => "*******"
]
]
];
$auth = new SteamAuth('login', 'password', 'shared_secret', $cookieOptions);
use SteamAuth\SteamAuth;
require "vendor/autoload.php";
$auth = new SteamAuth('login', 'password', 'shared_secret');
try {
$auth->login();
} catch (\SteamAuth\Exceptions\SteamErrorException $e) {
$e->getMessage();
} catch (\SteamAuth\Exceptions\SteamResponseException $e) {
$e->getMessage();
}
v1.0.9 or later is required to use proxy.
Keys that can be in an array:
ip
+port
ordomain_name
–domain_name
used for rotating proxyuser
+pass
– if proxy support authtype
– you can pass constant variable or integer as explained in table belowtimeout
– in seconds, default infiniteconnect_timeout
– in seconds, default infiniteuser_agent
– your Useragent
cURL Proxy Type | Integer |
---|---|
CURLPROXY_HTTP | 0 |
CURLPROXY_HTTP_1_0 | 1 |
CURLPROXY_HTTPS | 2 |
CURLPROXY_SOCKS4 | 4 |
CURLPROXY_SOCKS4A | 6 |
CURLPROXY_SOCKS5 | 5 |
CURLPROXY_SOCKS5_HOSTNAME | 7 |
Example:
use SteamAuth\SteamAuth;
require "vendor/autoload.php";
$proxy = [
'ip' => '49.12.181.264',
'port' => 8000,
'user' => 'user',
'pass' => 'pass'
];
$auth = new SteamAuth('login', 'password', 'shared_secret');
$auth->setProxy($proxy);
$auth->login();
Report bugs on the issue tracker.
Protobuf Steam Auth is open-sourced Composer package licensed under the MIT license.