Здравствуйте. Я пытаюсь сделать авторизацию пользователей через стим. Регистрации быть не должно, а авторизация исключительно через стим. Сейчас я сделал все как в example-гайде, ну примерно. Только вот я, хоть убейте, не понимаю, каким образом оно должно работать. Создал get route на SteamController@getLogin, если зайти на этот маршрут то вылезет авторизация на сайте стима. Когда все подтверждаешь возвращает обратно на сайт с таким содержимым адресной строки:
?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fsteamcommunity.com%2Fopenid%2Flogin&openid.claimed_id=http%3A%2F%2Fsteamcommunity.com%2Fopenid%2Fid%2F76561198126709110&openid.identity=http%3A%2F%2Fsteamcommunity.com%2Fopenid%2Fid%2F
Но юзер досих пор guest. Что делать? Вот сам SteamController:
<?php
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
use Invisnik\LaravelSteamAuth\SteamAuth;
class SteamController extends Controller {
/**
* @var SteamAuth
*/
private $steam;
public function __construct(SteamAuth $steam)
{
$this->steam = $steam;
}
public function getLogin()
{
if($this->steam->validate()){
$info = $this->steam->getUserInfo();
echo $info->getNick();
if(!is_null($info)) {
try {
$user = User::where('steamid', $info->getSteamID())->first();
if($user->name != $info->getNick() || $user->profileURL != $info->getProfileURL()) {
$user->name = $info->getNick();
$user->profileURL = $info->getProfileURL();
$user->save();
}
Auth::login($user);
return $user;
} catch(Exception $ex) {
$user = User::create([
'name' => $info->getNick(),
'steamid' => $info->getSteamID(),
'profileURL' => $info->getProfileURL(),
]);
Auth::login($user);
return $user;
}
}
} else {
return $this->steam->redirect(); //redirect to steam login page
}
}
}