Logowanie przez Social Media
- routy:
/routes/vendor/icore/auth.php
/routes/vendor/icore/web/profile.php
- kontrolery:
N1ebieski\ICore\Http\Controllers\Auth\SocialiteController
N1ebieski\ICore\Http\Controllers\Web\Profile\SocialiteController
- model:
N1ebieski\ICore\Models\Socialite
- repozytorium:
N1ebieski\ICore\Repositories\SocialiteRepo
- serwis:
N1ebieski\ICore\Services\
Socialite
Service - widoki:
/resources/views/vendor/icore/web/profile
- pliki językowe:
/resources/lang/vendor/icore/pl/profile.php
/resources/lang/vendor/icore/en/profile.php
Opis
iCore udostępnia użytkownikom możliwość logowania lub rejestracji za pomocą serwisów typu Social Media - domyślnie Facebook i Twitter. W przypadku istniejącego konta użytkownika możliwe jest po zalogowaniu powiązanie go z Social Media z poziomu swojego profilu na stronie. Z poziomu profilu użytkownik ma również możliwość usunięcia powiązania.
Konfiguracja
Z poziomu pliku .env w głównym folderze z aplikacją. Dla Facebook:
FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRET=
Odpowiednie klucze należy wygenerować w swoim koncie na stronie Facebook for Developers.
Dla Twitter:
TWITTER_CLIENT_ID=
TWITTER_CLIENT_SECRET=
Odpowiednie klucze należy wygenerować w swoim koncie na stronie Twitter for Developers.
Request logowania/rejestracji użytkowników przez Social Media musi być wysłany z poziomu strony z prawidłowo zweryfikowanym certyfikatem SSL (aplikacja musi działać na adresie z protokołem https).
W przypadku gdy konto użytkownika nie udostępnia adresu e-mail, rejestracja się nie powiedzie. Użytkownik zostanie przekierowany na podstronę pełnej rejestracji ze stosownym komunikatem.
W kwestiach nie omówionych wyżej zastosowanie ma dokumentacja Laravel Socialite.
Wyłączenie możliwości logowania przez Social Media
Dla logowania/rejestracji nowych użytkowników należy usunąć lub zakomentować odpowiednie routy w pliku /routes/vendor/icore/auth.php:
Route::get('login/{provider}', 'Auth\SocialiteController@redirect')
->middleware('icore.guest')
->name('auth.socialite.redirect');
Route::get('login/{provider}/callback', 'Auth\SocialiteController@callback')
->middleware('icore.guest')
->name('auth.socialite.callback');
Dla tworzenia powiązań istniejących użytkowników należy usunąć lub zakomentować odpowiednie routy w pliku /routes/vendor/icore/web/profile.php:
Route::get('profile/edit/socialite', 'Profile\ProfileController@editSocialite')
->name('profile.edit_socialite');
Route::get('symlink/{provider}', 'Profile\SocialiteController@redirect')
->name('profile.socialite.redirect')->where('provider', '[A-Za-z]+');
Route::get('symlink/{provider}/callback', 'Profile\SocialiteController@callback')
->name('profile.socialite.callback')->where('provider', '[A-Za-z]+');
Route::delete('symlink/socialites/{socialite}', 'Profile\SocialiteController@destroy')
->name('profile.socialite.destroy')->middleware('can:delete,socialite')
->where('socialite', '[0-9]+');