Sobes.tech
Junior — Middle

Жобаларыңызда қандай авторизация әдістерін қолдандыңыз?

sobes.tech AI

AI-дан жауап

Go жобаларында мен бірнеше авторизация әдістерін қолдандым:

  • JWT (JSON Web Tokens) — сессиясыз авторизацияның танымал тәсілі, мұнда клиент логин жасағаннан кейін токен алады және оны сұраулардың тақырыптарында жібереді.
  • Basic Auth — логин мен құпия сөзді HTTP тақырыбында жіберу арқылы жүзеге асатын қарапайым әдіс, ішкі немесе қарапайым сервистер үшін қолайлы.
  • OAuth 2.0 — сыртқы авторизация провайдерлерімен (Google, Facebook және т.б.) интеграциялау үшін, жиі кітапханалар арқылы жүзеге асырылады.

Go-да github.com/dgrijalva/jwt-go кітапханасымен JWT қолданудың мысалы:

import (
    "github.com/dgrijalva/jwt-go"
    "time"
)

func GenerateJWT(secret []byte, userID string) (string, error) {
    token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
        "user_id": userID,
        "exp":    time.Now().Add(time.Hour * 72).Unix(),
    })
    return token.SignedString(secret)
}

Таңдау әдісі қауіпсіздік талаптары мен қолданбаның архитектурасына байланысты.