Un token va servir à identifier chaque requête effectuée auprès de ton API. Il fournit des informations telles que l'ID de l'utilisateur qui fait la requête, le timeout du token etc ...
En créant un middleware de vérification du token, tu peux ainsi le valider ou non, et permettre à la requête d'aboutir en fonction.
Le token le plus répandu est sans doute JsonWebToken. Tu peux l'implanter sur la plupart des systèmes Back-End actuels (Node, PHP). Le token sera donc un objet JSON, encodé pour les échanges client/serveur. Le client aura donc le token encodé stocké en cookie / session, et le transmet avec chacune de ses requêtes à l'API. Le middleware se charge ensuite de le décoder et de vérifier sa validité.
Plus d'informations sur JsonWebToken (JWT) ici. Si tu utilise Symfony en back-end, un bundle maintenu est disponible pour utiliser JWT ici.
Bien sûr, ce n'est pas OAuth, qui est un peu plus complexe dans son utilisation, mais bien plus sécurisé. JWT permet de mettre en place rapidement une solution sûre d'authentification, mais est loin d'égaler OAuth en termes de sécurité. JWT est cependant bien plus flexible à installer et à comprendre.
Bon courage !
EDIT : (pour répondre plus clairement à ta question) un token est donc généré pour chaque utilisateur, lors de sa connexion, afin d'authentifier ses requêtes auprès de l'API.