CakeDC\Users\Auth\SocialAuthenticate::getUser PHP Method

getUser() public method

Get a user based on information in the request.
public getUser ( Cake\Network\Request $request ) : mixed
$request Cake\Network\Request Request object.
return mixed Either false or an array of user information
    public function getUser(Request $request)
    {
        $data = $request->session()->read(Configure::read('Users.Key.Session.social'));
        $requestDataEmail = $request->data('email');
        if (!empty($data) && (!empty($data['email']) || !empty($requestDataEmail))) {
            if (!empty($requestDataEmail)) {
                $data['email'] = $requestDataEmail;
            }
            $user = $data;
            $request->session()->delete(Configure::read('Users.Key.Session.social'));
        } else {
            if (empty($data) && !($rawData = $this->_authenticate($request))) {
                return false;
            }
            if (empty($rawData)) {
                $rawData = $data;
            }
            $provider = $this->_getProviderName($request);
            try {
                $user = $this->_mapUser($provider, $rawData);
            } catch (MissingProviderException $ex) {
                $request->session()->delete(Configure::read('Users.Key.Session.social'));
                throw $ex;
            }
            if ($user['provider'] === SocialAccountsTable::PROVIDER_TWITTER) {
                $request->session()->write(Configure::read('Users.Key.Session.social'), $user);
            }
        }
        if (!$user || !$this->config('userModel')) {
            return false;
        }
        if (!($result = $this->_touch($user))) {
            return false;
        }
        if ($request->session()->check(Configure::read('Users.Key.Session.social'))) {
            $request->session()->delete(Configure::read('Users.Key.Session.social'));
        }
        return $result;
    }