/** * Obtain the user information from Tokenpass. * * And sync it with our local database * * @return Response */ public function sync(Request $request) { try { $logged_in_user = Auth::user(); $oauth_user = null; if ($logged_in_user['oauth_token']) { $oauth_user = Socialite::getUserByExistingToken($logged_in_user['oauth_token']); } if ($oauth_user) { $tokenly_uuid = $oauth_user->id; $oauth_token = $oauth_user->token; $username = $oauth_user->user['username']; $name = $oauth_user->user['name']; $email = $oauth_user->user['email']; $email_is_confirmed = $oauth_user->user['email_is_confirmed']; // find an existing user based on the credentials provided $existing_user = User::where('tokenly_uuid', $tokenly_uuid); if ($existing_user) { // update $existing_user->update(['name' => $name, 'email' => $email]); } $synced = true; } else { // not able to sync this user $synced = false; } return view('account.sync', ['synced' => $synced, 'user' => $logged_in_user]); } catch (Exception $e) { return view('account.sync-failed', ['error_msg' => 'Failed to sync this user.']); } }