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 ва фиристодан ба клиент
}
Ин раванд дохил мекунад санҷиши парол, эҷоди токен ё сессия ва идоракунии ҳолати корбар.