allyans3 / protobuf-steam-auth
description
Installs: 4 937
Dependents: 1
Suggesters: 0
Security: 0
Stars: 21
Watchers: 1
Forks: 3
Open Issues: 1
Requires
- allegro/php-protobuf: ^0.12.4
- allyans3/php-steam-totp: ^1.0
- php-curl-class/php-curl-class: >=8.10.0
- ramsey/uuid: ^4.2
Requires (Dev)
- symfony/var-dumper: ^5.4
README
To use this package you need to install php extension
protobuf
. Installation instructions are below.
About Protobuf Steam Auth
This package provides the ability to authorize to the Steam using Google Protobuf. Support PHP 7+ and PHP 8+.
Installation
- 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
Usage
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)
Cookie storage
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);
Handle Exceptions
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(); }
Proxy
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
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();
Support
Report bugs on the issue tracker.
License
Protobuf Steam Auth is open-sourced Composer package licensed under the MIT license.