Skip to content

Instantly share code, notes, and snippets.

@bayareawebpro
Last active September 19, 2017 03:40
Show Gist options
  • Save bayareawebpro/b06735ce8aae166d0d726b955a31dc2b to your computer and use it in GitHub Desktop.
Save bayareawebpro/b06735ce8aae166d0d726b955a31dc2b to your computer and use it in GitHub Desktop.
<?php
Route::get('social/{provider}', 'Auth\SocialController@redirect');
Route::get('social/{provider}/callback', 'Auth\SocialController@handle');
class SocialController extends Controller{
public function redirect(Request $request, $provider){
return Socialite::driver($provider)->fields([
'name',
'first_name',
'last_name',
'email',
'verified'
])->redirect();
}
public function handle(Request $request, $provider){
$socialUser = Socialite::driver($provider)->stateless()->user();
$account = User::firstOrNew([
'email'=>$socialUser->getEmail()
]);
//facebook_id | google_id etc..
$account->{$provider.'_id'} = $socialUser->getId();
$account->{$provider.'_token'} = $socialUser->token;
$account->save();
\Auth::login($account);
switch(\Auth::user()->role){
case 'admin':
return redirect('/');
break;
case 'customer':
return redirect('/');
break;
default:
return redirect('/');
break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment