Аутентификация Steam OpenID на Laravel
В последние недели я пытаюсь выполнить проверку OpenID на моем веб-сайте laravel, но безуспешно. Я не могу использовать laravel/socialite, потому что пакет не поддерживает пар и не поддерживает поддержку OpenID.
Затем я нашел сообщество, управляемое для пользовательских адаптеров социальной сети. Но адаптеры бесполезны и используют устаревшие зависимости.
Ответ поможет многим людям. Помогите нам: c
Ответы
Ответ 1
Вам нужно использовать Laravel Steam Auth
Очень простая настройка:
-
Установка композитора
"invisnik/laravel-steam-auth": "2.*"
-
Добавьте поставщика услуг в app/config/app.php в массиве поставщиков.
'providers' => [
Invisnik\LaravelSteamAuth\SteamServiceProvider::class,
]
- Опубликовать config:
php artisan vendor:publish
- Настройте маршрут и ключ API в
config/steam-auth.php
- Добавить маршрут:
Route::get('dologin', 'Auth\[email protected]');
-
Используйте этот пример живого кода, поскольку код из readme не работал у меня:
<?php
public function dologin(Request $request)
{
if ($this->steam->validate()) {
$info = $this->steam->getUserInfo();
if (! is_null($info)) {
$user = User::where('token', $info->get('steamID64'))->first();
if (! is_null($user)) {
//Update user data, as it change over time..
$user->nick = $info->get('personaname');
$user->name = $info->get('realname') ?: '';
$user->avatar = $info->get('avatarfull');
$user->update();
} else {
$user = User::create([
'nick' => $info->get('personaname'),
'name' => $info->get('realname') ?: '',
'avatar' => $info->get('avatarfull'),
'token' => $info->get('steamID64'),
]);
}
Auth::login($user, true);
return redirect('/'); // redirect to site
}
}
return $this->steam->redirect(); // redirect to Steam login page
}
Ответ 2
Социальный вход в Steam
-
Установка композитора
// This assumes that you have composer installed globally
composer require socialiteproviders/steam
-
СЕРВИСНЫЙ ПРОВАЙДЕР
-
Удалите Laravel\Socialite\SocialiteServiceProvider из вашего провайдера [] array в config\app.php, если вы уже добавили его.
-
Добавить\SocialiteProviders\Manager\ServiceProvider:: класс в ваш провайдер [] массив в config\app.php.
'providers' => [
// a whole bunch of providers
// remove 'Laravel\Socialite\SocialiteServiceProvider',
\SocialiteProviders\Manager\ServiceProvider::class, // add
];
-
Добавить событие и прослушиватели
protected $listen = [
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
// add your listeners (aka providers) here
'SocialiteProviders\Steam\[email protected]',
],
];
-
ОКРУЖАЮЩАЯ СРЕДА ВЕРСИЯ в файле env
// other values above
STEAM_KEY=yourapikeyfortheservice
STEAM_REDIRECT_URI=https://example.com/login
источники: - http://socialiteproviders.github.io/providers/steam/
Надеюсь, это поможет с вашим паролем.