diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index a74536a3c102..b0e2878d4cfa 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -4,6 +4,8 @@ use Auth; use Utils; use Response; use Cache; +use Socialite; +use Exception; use App\Models\Account; use App\Ninja\Repositories\AccountRepository; use Illuminate\Http\Request; @@ -181,4 +183,18 @@ class AccountApiController extends BaseAPIController } } + + public function validateOauthToken(Request $request) + { + $token = $request->input('token'); + $provider = $request->input('provider'); + + try { + $user = Socialite::driver($provider)->userFromToken($token); + } catch (Exception $exception) { + return $this->response($exception->getMessage()); + } + + return $user ? RESULT_SUCCESS : RESULT_FAILURE; + } } diff --git a/app/Http/routes.php b/app/Http/routes.php index 94abf483358c..de46af9fd6e3 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -308,6 +308,7 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function() Route::post('update_notifications', 'AccountApiController@updatePushNotifications'); Route::get('dashboard', 'DashboardApiController@index'); Route::resource('documents', 'DocumentAPIController'); + Route::post('validate_outh_token', 'AccountApiController@validateOauthToken'); // Vendor Route::resource('vendors', 'VendorApiController'); diff --git a/app/Services/AuthService.php b/app/Services/AuthService.php index d3a550208021..58bd18563679 100644 --- a/app/Services/AuthService.php +++ b/app/Services/AuthService.php @@ -85,7 +85,7 @@ class AuthService return redirect()->to('login'); } } - + $redirectTo = Input::get('redirect_to') ?: 'dashboard'; return redirect()->to($redirectTo); }