densul / oautwitube
OAuth Authorization via tweet and youtube
Requires
- php: ^7.1.3
- guzzlehttp/guzzle: ~6.1
- laravel/framework: 5.6.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
This package is not auto-updated.
Last update: 2021-05-29 10:57:49 UTC
README
Данный пакет предназначен для laravel 5.6+, для работы с API youtube.com и twitch.tv. В данное время доступна только oAuth авторизация и получение информации о текущем пользователе с этих ресурсов.
UPD: 23.07.2018 добавлена возможность авторизации по Steam. English soon
Установка
composer require densul/oautwitube
Затем добавить в файле config/app.php
, добавить сервис-провайдер
densul\oautwitube\Providers\OautwitubeServiceProvider::class
Там же задать алиас:
'Twitube' => densul\oautwitube\Facades\OautwitubeServiceFacade::class
Далее создаем конфиг:
php artisan vendor:publish
Выбираем наш сервис провайдер
После этого появится конфиг в /config/oautwitube-api.php
Для площадки youtube подтребуется включить API 3, здесь. Для площадки steam, ключ получаем тут здесь.
Использование
В шаблонизаторе:
<div class="links"> <a href="{{ Twitube::driver('twitch')->AuthenticationURL() }}">Auth Twitch</a> <a href="{{ Twitube::driver('youtube')->AuthenticationURL() }}">Auth YouTube</a> </div>
В случае стима, можно поставить кнопки уже с готовой ссылкой:
{!! Twitube::driver('steam')->loginButton('small') !!} {!! Twitube::driver('steam')->loginButton('big') !!} <!--- simple link ---!> Twitube::driver('steam')->AuthenticationURL()
Соответственно какой Вы задатите redirect_url в конфиге, создаем роуты:
Route::get('/auth', ['as' => 'auth', 'uses' => 'Auth\LoginController@twitchLogin']); Route::get('/auth_youtube', ['as' => 'auth', 'uses' => 'Auth\LoginController@youtubeLogin']); Route::get('/auth_steam', ['as' => 'auth', 'uses' => 'Auth\LoginController@steamLogin']);
В LoginController:
public function twitchLogin(Request $request) { $code = $request->input('code'); $token = Twitube::driver('twitch')->RequestToken($code); $user = Twitube::driver('twitch')->AuthenticatedUser($token); dd($user); } public function youtubeLogin(Request $request) { $code = $request->input('code'); $token = Twitube::driver('youtube')->RequestToken($code); $user = Twitube::driver('youtube')->AuthenticatedUser($token); dd($user); } public function steamLogin(Request $request) { $user = Twitube::driver('steam')->authenticatedUser(); dd($user); }
Пока все, функционал буду дописывать по мере необходимости, следите за обновлениями.