Sobes.tech
Junior — Middle

¿Qué métodos ha utilizado o conoce para implementar el proceso de inicio de sesión del usuario en el sistema?

sobes.tech AI

Respuesta de la IA

Para implementar el inicio de sesión de un usuario en Go, generalmente se utilizan los siguientes métodos:

  • Autenticación mediante login y contraseña con almacenamiento de hashes de contraseñas (por ejemplo, bcrypt).
  • Uso de JWT (JSON Web Tokens) para crear un token de sesión tras un inicio de sesión exitoso.
  • OAuth2 para autorización a través de servicios externos (Google, Facebook, etc.).
  • Sesiones con cookies para aplicaciones web.

Ejemplo de un inicio de sesión simple con verificación de contraseña:

import (
    "golang.org/x/crypto/bcrypt"
    "net/http"
)

func loginHandler(w http.ResponseWriter, r *http.Request) {
    username := r.FormValue("username")
    password := r.FormValue("password")

    // Obtener el hash de la contraseña de la base de datos por username
    hashedPassword := getHashedPasswordFromDB(username)

    err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
    if err != nil {
        http.Error(w, "Credenciales inválidas", http.StatusUnauthorized)
        return
    }

    // Crear una sesión o JWT y enviarla al cliente
}

De esta forma, el proceso incluye la verificación de la contraseña, la creación del token o sesión y la gestión del estado del usuario.