Аутентификация 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/

Надеюсь, это поможет с вашим паролем.