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
- 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}', [SocialiteController::class, 'redirect'])
->middleware('icore.guest')
->name('auth.socialite.redirect');
Route::get('login/{provider}/callback', [SocialiteController::class, '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/socialites', [ProfileController::class, 'socialites'])
->name('profile.socialites');
Route::get('symlink/{provider}', [SocialiteController::class, 'redirect'])
->name('profile.socialite.redirect')
->where('provider', '[A-Za-z]+');
Route::get('symlink/{provider}/callback', [SocialiteController::class, 'callback'])
->name('profile.socialite.callback')
->where('provider', '[A-Za-z]+');
Route::delete('symlink/socialites/{socialite}', [SocialiteController::class, 'destroy'])
->name('profile.socialite.destroy')
->middleware('can:delete,socialite')
->where('socialite', '[0-9]+');