 1f37318f79
			
		
	
	1f37318f79
	
	
	
		
			
			- Support azure, bitbucket, github, gitlab, google providers - Add authentication page to settings Co-authored-by: Suraj Kumar <srjkmr1024@gmail.com> Co-authored-by: Michael Castanieto <mcastanieto@gmail.com> Co-authored-by: Mike Kim <m.kim4247@gmail.com>
		
			
				
	
	
		
			36 lines
		
	
	
		
			993 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			993 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers;
 | |
| 
 | |
| use App\Http\Controllers\Controller;
 | |
| use App\Models\User;
 | |
| 
 | |
| use Illuminate\Support\Facades\Auth;
 | |
| 
 | |
| class OauthController extends Controller {
 | |
|     public function redirect(string $provider)
 | |
|     {
 | |
|         $socialite_provider = get_socialite_provider($provider);
 | |
|         return $socialite_provider->redirect();
 | |
|     }
 | |
| 
 | |
|     public function callback(string $provider)
 | |
|     {
 | |
|         try {
 | |
|             $oauthUser = get_socialite_provider($provider)->user();
 | |
|             $user = User::whereEmail($oauthUser->email)->first();
 | |
|             if (!$user) {
 | |
|                 $user = User::create([
 | |
|                     'name' => $oauthUser->name,
 | |
|                     'email' => $oauthUser->email,
 | |
|                 ]);
 | |
|             }
 | |
|             Auth::login($user);
 | |
|             return redirect('/');
 | |
|         } catch (\Exception $e) {
 | |
|             ray($e->getMessage());
 | |
|             return redirect()->route('login')->withErrors([__('auth.failed.callback')]);
 | |
|         }
 | |
|     }
 | |
| }
 |