Face anti-spoofing (FAS) aims to distinguish live images and facial spoof attacks to defend facial recognition systems. Thanks to advancements in deep learning, recent deep learning-based FAS methods have shown promising potential, especially in effectively addressing newly developed attacks. In this survey, we first provide an overview of common challenges in FAS and then recap recent advances in deep learning-based FAS. In particular, these anti-spoofing methods generally fall into two main categories, i.e., two-class FAS and one-class FAS. Recent two-class FAS methods have employed a wide range of techniques in developing FAS models, including auxiliary supervision, local descriptor-enhanced feature learning, disentangled feature learning, meta learning, adversarial learning, data augmentation, long-range dependency learning, and multimodal learning. Meanwhile, recent one-class FAS methods have utilized reconstruction supervision, statistical learning, and generative feature learning to learn liveness features solely from live images. In this survey, we also provide an overview of publicly available FAS datasets. Finally, we summarize recent FAS development and highlight some potential future research directions.