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 ва фиристодан ба клиент
}

Ин раванд дохил мекунад санҷиши парол, эҷоди токен ё сессия ва идоракунии ҳолати корбар.