name('home'); // ----------------- SOCIAL LOGIN -------------------- function _loginVia($method) { try { SocialAuth::login($method, function (\App\Models\User $user, ProviderUser $details) { // update user name first time user logs in if (!$user->exists) { $user->name = $details->nickname ?: ($details->full_name ?: $details->email); } // set e-mail from provider data, only if user e-mail is empty if ("$user->email" === "") { $user->email = $details->email; } }); } catch (ApplicationRejectedException $e) { abort(401, $e->getMessage()); } catch (InvalidAuthorizationCodeException $e) { abort(401, $e->getMessage()); } return Redirect::intended(); }; Route::get('/auth/github/authorize', function() { return SocialAuth::authorize('github'); })->name('oauth-github-authorize'); Route::get('/auth/github/callback', function() { return _loginVia('github'); })->name('oauth-github-callback'); Route::get('/auth/google/authorize', function() { return SocialAuth::authorize('google'); })->name('oauth-google-authorize'); Route::get('/auth/google/callback', function() { return _loginVia('google'); })->name('oauth-google-callback'); Route::get('/auth/facebook/authorize', function() { return SocialAuth::authorize('facebook'); })->name('oauth-facebook-authorize'); Route::get('/auth/facebook/callback', function() { return _loginVia('facebook'); })->name('oauth-facebook-callback'); /* Route::get('/auth/stack/authorize', function() { return SocialAuth::authorize('stack'); })->name('oauth-stack-authorize'); Route::get('/auth/stack/callback', function() { return _loginVia('stack'); })->name('oauth-stack-callback'); */