Por ejemplo, cuando un usuario ha iniciado sesión. Ahora digamos que el usuario desea crear un tema del foro, ¿Cómo sabré que el usuario ya ha iniciado sesión?
Piénselo: debe haber algún apretón de manos que le indique a su API "Crear foro" que esta solicitud actual es de un usuario autenticado. Dado que las API REST generalmente no tienen estado, el estado debe persistir en alguna parte . Su cliente que consume las API REST es responsable de mantener ese estado. Por lo general, tiene la forma de un token que se pasa desde el momento en que el usuario inició sesión. Si el token es bueno, su solicitud es buena.
Compruebe cómo Amazon AWS realiza las autenticaciones. Ese es un ejemplo perfecto de "pasar el dinero" de una API a otra.
* Pensé en agregar alguna respuesta práctica a mi respuesta anterior. Pruebe Apache Shiro (o cualquier biblioteca de autenticación / autorización). En pocas palabras, intente y evite la codificación personalizada. Una vez que haya integrado su biblioteca favorita (uso Apache Shiro, por cierto), puede hacer lo siguiente:
- Cree una API de inicio / cierre de sesión como:
/api/v1/login
yapi/v1/logout
- En estas API de inicio y cierre de sesión, realice la autenticación con su tienda de usuario
- El resultado es un token (generalmente
JSESSIONID
) que se envía de vuelta al cliente (web, móvil, lo que sea)
- A partir de este momento, todas las llamadas posteriores realizadas por su cliente incluirán este token
- Digamos que su próxima llamada se realiza a una API llamada
/api/v1/findUser
- Lo primero que hará este código API es verificar el token ("¿está autenticado este usuario?")
- Si la respuesta regresa como NO, entonces devuelve un Estado HTTP 401 al cliente. Déjelos manejarlo.
- Si la respuesta es SÍ, proceda a devolver el Usuario solicitado.
Eso es todo. Espero que esto ayude.