Me gustaría saber qué método http debo usar al realizar una solicitud de inicio de sesión y por qué. Dado que esta solicitud crea un objeto (una sesión de usuario) en el servidor, creo que debería ser POST, ¿qué opinas? Pero dado que la solicitud de inicio de sesión debe ser idempotente, podría ser PUT, ¿no?
La misma pregunta para una solicitud de cierre de sesión, ¿debo usar el método DELETE?
fuente
Creo que puede traducir los métodos LOGIN & LOGOUT en operaciones CRUD básicas CREATE & DELETE. Dado que está creando un nuevo recurso llamado SESSION y lo destruye al cerrar la sesión:
Nunca haría LOGOUT como GET solo porque cualquiera podría realizar un ataque simplemente enviando un correo electrónico con una etiqueta IMG o un enlace al sitio web donde existe dicha etiqueta IMG. (
<img src="youtsite.com/logout" />
)PD Hace mucho tiempo que me preguntaba cómo crearía un inicio de sesión / cierre de sesión RESTful y resultó que es realmente simple, lo hace como lo describí: use / session / endpoint con los métodos CREATE y DELETE y está bien. También puede usar ACTUALIZAR si desea actualizar la sesión de una forma u otra ...
fuente
Aquí está mi solución basada en guías y recomendaciones REST:
LOGIN - crea un recurso
Solicitud:
Respuesta:
SALIR - eliminar un recurso
Solicitud:
Respuesta:
fuente
En cuanto al método para cerrar la sesión:
En la documentación de Spring (Java Framework), afirman que se prefiere una solicitud POST, ya que un GET lo hace vulnerable a CSRF (Cross-Site Request Forgery) y el usuario podría cerrar la sesión.
Ver: https://docs.spring.io/spring-security/site/docs/current/reference/html/web-app-security.html#csrf-logout
El inicio de sesión también debe usar POST (el cuerpo se puede cifrar, consulte las otras respuestas).
fuente
Para la solicitud de inicio de sesión, debemos usar el método POST. Porque nuestros datos de inicio de sesión son seguros, lo que necesita seguridad. Cuando se usa el método POST, los datos se envían al servidor en un paquete. Pero en el método GET, los datos se envían al servidor seguidos de la URL, como agregar con la solicitud de URL, que será vista por todos.
Entonces, para un proceso seguro de autenticación y autorización, debemos usar el método POST.
Espero que esta solución te ayude.
Gracias
fuente
Para iniciar sesión, uso POST, a continuación se muestra mi código para el método LOGIN que usé Nodejs con Express y Mongoose
fuente