¿Cuál es la forma correcta de averiguar si el usuario ha iniciado sesión en MVC WEB API?

Estoy muy confundido sobre este problema. El servicio completo le corresponde a usted decidir qué manera de implementar esta funcionalidad.

He leído varios artículos sobre este problema, pero cada artículo dice algo diferente.

Por ejemplo, algunas personas proponen sesiones, pero si haces eso, la API web está perdiendo su "plenitud de descanso". Otras personas sugieren cockies.

No sé si lo que he hecho está bien hecho:

Al iniciar sesión del usuario, creo un cockie que contiene UserID (Guid) y en cada solicitud que necesita que el usuario inicie sesión, verifico si esta identificación existe en la base de datos.

¿Es lo suficientemente seguro? ¿O cómo debería hacerlo más seguro? ¿O tengo que elegir una forma completamente diferente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta