First commit
This commit is contained in:
71
app/Http/Controllers/Auth/LoginController.php
Normal file
71
app/Http/Controllers/Auth/LoginController.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Auth;
|
||||
use Socialite;
|
||||
use Route;
|
||||
use App\User;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Login Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles authenticating users for the application and
|
||||
| redirecting them to your home screen. The controller uses a trait
|
||||
| to conveniently provide its functionality to your applications.
|
||||
|
|
||||
*/
|
||||
|
||||
use AuthenticatesUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/home';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest')->except('logout');
|
||||
}
|
||||
|
||||
public function redirectToProvider($provider)
|
||||
{
|
||||
return Socialite::driver($provider)->redirect();
|
||||
}
|
||||
|
||||
public function handleProviderCallback($provider)
|
||||
{
|
||||
$user = Socialite::driver($provider)->user();
|
||||
$authUser = $this->findUser($user, $provider);
|
||||
|
||||
Auth::login($authUser, true);
|
||||
return redirect($this->redirectTo);
|
||||
}
|
||||
public function findUser($user, $provider) {
|
||||
$authUser = User::where('social_id', $user->id . '_' . $provider)->first();
|
||||
if($authUser) {
|
||||
return $authUser;
|
||||
}
|
||||
return User::create([
|
||||
'name' => $user->getName(),
|
||||
'email' => $user->getEmail(),
|
||||
'social_id' => $user->getId() . '_' . $provider,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user