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\SocialiteService
  • 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]+');