eliuflorez/steam-auth

Laravel Steam Auth

1.0 2016-01-23 16:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:31:35 UTC


README

此包是 Laravel 5 服务提供者,提供 Steam OpenID 支持,非常容易与任何需要 Steam 认证的项目的集成。

通过 Composer 安装

将以下内容添加到您的 composer.json 文件中的 require 对象

"eliuflorez/steam-auth": "1.*"

之后,运行 composer install 安装包。

最后,将服务提供者添加到 app/config/app.php 文件中的 providers 数组。

'providers' => [
	// ...
	EliuFlorez\SteamAuth\SteamServiceProvider::class,
]

最后,发布配置文件。

php artisan vendor:publish

使用示例

config/steam-auth.php

return [

    /*
     * Redirect URL after login
     */
    'redirect_url' => '/login',
	
    /*
     *  API Key (http://steamcommunity.com/dev/apikey)
     */
    'api_key' => 'Your API Key'

];

routes.php

get('login', 'AuthController@login');

AuthController

namespace App\Http\Controllers;

use EliuFlorez\SteamAuth\SteamAuth;
use App\User;
use Auth;

class AuthController extends Controller
{

    /**
     * @var SteamAuth
     */
    private $steam;

    public function __construct(SteamAuth $steam)
    {
        $this->steam = $steam;
    }

    public function login()
    {
        if ($this->steam->validate()) { 
            $info = $this->steam->getUserInfo();
            if (! is_null($info)) {
                $user = User::where('steamid', $info->getSteamID64())->first();
                if (!is_null($user)) {
                    Auth::login($user, true);
                    return redirect('/'); // redirect to site
                }else{
                    $user = User::create([
                        'username' => $info->getNick(),
                        'avatar'   => $info->getProfilePictureFull(),
                        'steamid'  => $info->getSteamID64()
                    ]);
                    Auth::login($user, true);
                    return redirect('/'); // redirect to site
                }
            }
        } else {
            return $this->steam->redirect(); // redirect to Steam login page
        }
    }
}