This package is a Laravel 5 service provider which provides support for Steam OpenID and is very easy to integrate with any project that requires Steam authentication.
Add this to your composer.json
file, in the require object:
"invisnik/laravel-steam-auth": "2.*"
After that, run composer install
to install the package.
Add the service provider to app/config/app.php
, within the providers
array.
'providers' => [
// ...
Invisnik\LaravelSteamAuth\SteamServiceProvider::class,
]
Lastly, publish the config file.
php artisan vendor:publish
In config/steam-auth.php
return [
/*
* Redirect URL after login
*/
'redirect_url' => '/login',
/*
* API Key (http://steamcommunity.com/dev/apikey)
*/
'api_key' => 'Your API Key',
/*
* Is using https?
*/
'https' => false
];
In routes.php
get('login', 'AuthController@login');
In AuthController
namespace App\Http\Controllers;
use Invisnik\LaravelSteamAuth\SteamAuth;
use App\User;
use Auth;
class AuthController extends Controller
{
/**
* @var SteamAuth
*/
private $steam;
public function __construct(SteamAuth $steam)
{
$this->steam = $steam;
}
public function login()
{
if ($this->steam->validate()) {
$info = $this->steam->getUserInfo();
if (! is_null($info)) {
$user = User::where('steamid', $info->getSteamID64())->first();
if (! is_null($user)) {
Auth::login($user, true);
return redirect('/'); // redirect to site
}else{
$user = User::create([
'username' => $info->getNick(),
'avatar' => $info->getProfilePictureFull(),
'steamid' => $info->getSteamID64()
]);
Auth::login($user, true);
return redirect('/'); // redirect to site
}
}
} else {
return $this->steam->redirect(); // redirect to Steam login page
}
}
}