Sobes.tech
Junior — Middle

რა მეთოდებს იყენებდით ან იცით მომხმარებლის სისტემაში შესვლის პროცესის განხორციელებისთვის?

sobes.tech AI

პასუხი AI-სგან

Go-ში მომხმარებლის სისტემაში შესვლის განხორციელება ჩვეულებრივ გამოიყენება შემდეგი მეთოდები:

  • შესვლის და პაროლის ავტორიზაცია პაროლების ჰეშების შენახვით (მაგალითად, bcrypt).
  • JWT (JSON Web Tokens) გამოყენება სესიის ტოკენის შესაქმნელად წარმატებული შესვლის შემდეგ.
  • OAuth2 მესამე მხარის სერვისების საშუალებით ავტორიზაციისთვის (Google, Facebook და სხვა).
  • ვებ-აპლიკაციებისათვის cookie-ებით სესია.

სადაც არის მარტივი შესვლა და პაროლის შემოწმების მაგალითი:

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

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

    // მიიღეთ პაროლის ჰეში მონაცემთა ბაზიდან username-ის მიხედვით
    hashedPassword := getHashedPasswordFromDB(username)

    err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
    if err != nil {
        http.Error(w, "არასწორი მონაცემები", http.StatusUnauthorized)
        return
    }

    // შექმენით სესია ან JWT და გამოაგზავნეთ მომხმარებელზე
}

პროცესი მოიცავს პაროლის შემოწმებას, ტოკენის ან სესიის შექმნას და მომხმარებლის მდგომარეობის მართვას.