2017-03-04 15 views
11

W ostatnich tygodniach próbuję implementować uwierzytelnianie OpenID na mojej stronie internetowej laravel, ale bez powodzenia. Nie mogę użyć laravel/socialite, ponieważ pakiet nie obsługuje pary i myślę, że nie obsługuje także autorów OpenID.Steam OpenID Authentication na Laravel

Następnie znalazłem społeczność napędzaną project dla niestandardowych adapterów społecznościowych. Ale adaptery są bałaganem i używają przestarzałych zależności.

Odpowiedź pomoże wielu osobom. Pomóż nam: c

+1

Sprawdź to: https://github.com/invisnik/laravel-steam-auth> Ten pakiet jest dostawcą usług Laravel 5, który zapewnia wsparcie dla > dla Steam OpenID i jest bardzo łatwy do zintegrowania z każdym projektem, który > wymaga uwierzytelnienia Steam. Powinno robić to, co chcesz. 'ReadMe' zawiera szczegółowe instrukcje, jak je skonfigurować. –

+2

Używam od jakiegoś czasu parowca, nigdy nie miałem problemów. – Ian

+0

Co jest złego w korzystaniu z pakietu [Steam Socialite] (http://socialiteproviders.github.io/providers/steam/)? Jakie masz problemy z zależnościami? – Leith

Odpowiedz

1

Trzeba użyć Laravel Steam Auth

Bardzo łatwa konfiguracja:

  1. Kompozytor zainstalować

    "invisnik/laravel-steam-auth": "2.*"

  2. Dodaj dostawcę usług do app/config/app .php, w ramach tablicy providerów.

    'providers' => [ Invisnik\LaravelSteamAuth\SteamServiceProvider::class, ]

  3. Publish config: php artisan vendor:publish
  4. Konfiguracja trasy i API klucz w config/steam-auth.php
  5. Dodaj trasa: Route::get('dologin', 'Auth\[email protected]');
  6. korzystania z tego przykładu kodu na żywo, jak kod z readme nie pracował dla mnie:

    <?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 
        } 
    
0

ekonomista parowa Logowanie

  1. Kompozytor Install

    // This assumes that you have composer installed globally 
    composer require socialiteproviders/steam 
    
  2. Service Provider

    • Usuń laravel \ towarzystwa \ SocialiteServiceProvider ze swoimi dostawcami [] tablicy w config \ app. php, jeśli już go dodałeś.

    • Dodaj \ SocialiteProviders \ Manager \ ServiceProvider :: class do swojej listy dostawców [] w config \ app.php.

      'providers' => [ 
          // a whole bunch of providers 
          // remove 'Laravel\Socialite\SocialiteServiceProvider', 
          \SocialiteProviders\Manager\ServiceProvider::class, // add 
      ]; 
      
  3. Dodaj zdarzenie i słuchaczy

    protected $listen = [ 
        \SocialiteProviders\Manager\SocialiteWasCalled::class => [ 
        // add your listeners (aka providers) here 
        'SocialiteProviders\Steam\[email protected]', 
        ], 
    ]; 
    
  4. zmienne środowiskowe, w pliku env

    // other values above 
    STEAM_KEY=yourapikeyfortheservice 
    STEAM_REDIRECT_URI=https://example.com/login 
    

Źródła: - http://socialiteproviders.github.io/providers/steam/

Mamy nadzieję, że pomoże to w logowaniu Steam.