Junior — Middle
Foydalanuvchi tizimga kirish jarayonini amalga oshirish uchun qanday usullarni ishlatdingiz yoki bilasiz?
sobes.tech AI
AIdan javob
Go til ishlash uchun odatda quyidagi usullar qo'llaniladi:
- Login va parol bilan autentifikatsiya qilish va parol hashlarini saqlash (masalan, bcrypt).
- Muvaffaqiyatli kirishdan so'ng sessiya tokenini yaratish uchun JWT (JSON Web Tokens) dan foydalanish.
- Tashqi xizmatlar orqali ruxsat berish uchun OAuth2 (Google, Facebook va boshqalar).
- Veb-ilovalar uchun cookie bilan sessiyalar.
Oddiy kirish va parolni tekshirish misoli:
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 bo'yicha ma'lumotlar bazasidan parol hashini olish
hashedPassword := getHashedPasswordFromDB(username)
err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
if err != nil {
http.Error(w, "Noto'g'ri ma'lumotlar", http.StatusUnauthorized)
return
}
// Sessiya yoki JWT yaratish va mijozga yuborish
}
Bu jarayon parolni tekshirish, token yoki sessiya yaratish va foydalanuvchi holatini boshqarishni o'z ichiga oladi.