2017-03-04 117 views
11

最近幾周,我試圖在我的laravel網站上實現OpenID身份驗證,但沒有成功。我無法使用laravel/socialite,因爲該軟件包不支持Steam並且認爲不支持OpenID身份驗證。Laravel上的Steam OpenID身份驗證

然後,我發現社區驅動project爲自定義社交適配器。但適配器是一團糟,並使用過時的依賴關係。

答案會幫助很多人。幫助我們:C

+1

看看這個:https://github.com/invisnik/laravel-steam-auth>這個軟件包是一個Laravel 5服務提供商,它爲Steam OpenID提供支持 >,並且很容易與任何項目集成在一起 >需要Steam認證。它應該做你想做的。 'ReadMe'具有如何設置的詳細說明。 –

+2

我一直在使用蒸汽社交名片,從來沒有遇到過問題 – Ian

+0

使用[Steam Socialite](http://socialiteproviders.github.io/providers/steam/)包有什麼問題?你有什麼依賴性問題? – Leith

回答

1

您需要使用Laravel Steam Auth

很容易設置:

  1. 作曲安裝

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

  2. 添加服務提供商的應用程序/配置/應用.php,在providers數組中。

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

  3. 發佈配置:php artisan vendor:publish
  4. 設置在config/steam-auth.php
  5. 路線和API密鑰添加路線:Route::get('dologin', 'Auth\[email protected]');
  6. 使用這個活的代碼示例,從我沒有工作自述代碼:

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

社會名流Steam登錄

  1. 作曲安裝

    // This assumes that you have composer installed globally 
    composer require socialiteproviders/steam 
    
  2. 服務提供商

    • 從您的提供商配置\ APP []數組刪除Laravel \社會名流\ SocialiteServiceProvider。如果你已經添加了PHP。

    • 將\ SocialiteProviders \ Manager \ ServiceProvider :: class添加到config \ app.php中的providers []數組中。

      'providers' => [ 
          // a whole bunch of providers 
          // remove 'Laravel\Socialite\SocialiteServiceProvider', 
          \SocialiteProviders\Manager\ServiceProvider::class, // add 
      ]; 
      
  3. 添加事件和聽衆

    protected $listen = [ 
        \SocialiteProviders\Manager\SocialiteWasCalled::class => [ 
        // add your listeners (aka providers) here 
        'SocialiteProviders\Steam\[email protected]', 
        ], 
    ]; 
    
  4. 環境變量,ENV文件

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

來源: - http://socialiteproviders.github.io/providers/steam/

希望這有助於您的蒸汽登錄。