public function execute(ConnectUser $listener, $type, $hasCode = false)
    {
        $provider = $this->socialite->with($type);

        if (! $hasCode) {
            return $this->getAuthorizationFirst($provider);
        }

        $data = $this->getUserData($provider, $type);

        $this->session->put('orchestra.oneauth', $data);

        return $listener->userHasConnected($data, $this->auth);
    }