Skip to content

Kimlik Doğrulama (Authentication)

Shopier iki farklı kimlik doğrulama modelini destekler:

  1. Personal Access Token (PAT): Geliştirici panelinden üretilen statik belirteçler. Arka plan servisleri, cron görevleri ve tekil mağaza entegrasyonları için uygundur.
  2. OAuth 2.0: Mağaza sahiplerinin uygulamanıza yetki verdiği çok kullanıcılı (multi-tenant) uygulamalar için standart yetkilendirme kodu akışı.

1. Personal Access Token (PAT) ile Kullanım

Geliştirici portalından aldığınız belirteci doğrudan shopier.NewClient fonksiyonuna iletin:

go
client, err := shopier.NewClient("panelden_alinan_pat_token")
if err != nil {
	log.Fatal(err)
}

2. OAuth 2.0 Entegrasyonu

Shopier OAuth 2.0 uç noktaları özel port kurallarına sahiptir:

  • Yetkilendirme Sayfası: https://developer.shopier.com/v1/oauth2/authorize
  • Token Takası & Yenileme: https://api.shopier.com:8443/v1/oauth2/token
  • Token İptali (Revoke): https://api.shopier.com:8443/v1/oauth2/revoke

oauth paketi bu port ve adres yapılandırmasını varsayılan olarak doğru yönetir.

OAuth Yapılandırması

go
import "github.com/AdisGroup/shopier-go/oauth"

cfg := oauth.NewConfig(
	"CLIENT_ID",
	"CLIENT_SECRET",
	"https://uygulamaniz.com/oauth/callback",
)

1. Adım: Yetkilendirme URL'ine Yönlendirme

İstenen izin kapsamları (scopes) ve CSRF koruması için state parametresiyle onay URL'ini oluşturun:

go
consentURL := cfg.AuthCodeURL(
	"csrf_state_token",
	oauth.ScopeOrdersRead,
	oauth.ScopeOrdersWrite,
	oauth.ScopeProductsRead,
	oauth.ScopeProductsWrite,
)

// Kullanıcıyı consentURL adresine yönlendirin

2. Adım: Yetki Kodunu (Code) Erişim Belirtecine Dönüştürme

Callback endpoint'inize gelen geçici code parametresini erişim ve yenileme belirteçlerine dönüştürün:

go
token, err := cfg.Exchange(ctx, code)
if err != nil {
	log.Fatalf("OAuth token takası başarısız: %v", err)
}

fmt.Printf("Erişim Belirteci: %s (Geçerlilik süresi: %d saniye)\n", token.AccessToken, token.ExpiresIn)
fmt.Printf("Yenileme Belirteci: %s\n", token.RefreshToken)

3. Adım: Süresi Dolan Belirteçleri Yenileme

Shopier erişim belirteçleri 3 gün (259.200 saniye) geçerlidir. Süre dolduğunda yenileme belirteci ile yeni bir erişim belirteci alın:

go
if token.Expired() {
	newToken, err := cfg.RefreshToken(ctx, token.RefreshToken)
	if err != nil {
		log.Fatalf("Token yenileme başarısız: %v", err)
	}
	token = newToken
}

4. Adım: Belirteç İptali (Revoke)

Mağaza sahibi uygulamanızın bağlantısını kestiğinde belirteci geçersiz kılın:

go
err := cfg.Revoke(ctx, token.AccessToken)
if err != nil {
	log.Fatalf("Token iptali başarısız: %v", err)
}

İzin Kapsamları (Scopes) Referansı

Sabit AdıKapsam Değeriİzin Verilen İşlemler
oauth.ScopeOrdersReadorders:readSipariş listeleme/detay, işlem hareketleri, sipariş webhook'ları
oauth.ScopeOrdersWriteorders:writeSipariş kargo takip ve teslimat güncelleme
oauth.ScopeProductsReadproducts:readÜrünler, kategoriler, varyasyonlar, seçenekleri okuma
oauth.ScopeProductsWriteproducts:writeÜrün ve taksonomi oluşturma, güncelleme, silme
oauth.ScopeShippingsReadshippings:readKargo etiket ve takip durumlarını okuma
oauth.ScopeShippingsWriteshippings:writeAnlaşmalı kargo kodu üretme ve iptal
oauth.ScopeDiscountsReaddiscounts:readİndirim kodları ve otomatik indirimleri okuma
oauth.ScopeDiscountsWritediscounts:writeİndirim kampanyaları oluşturma ve yönetme
oauth.ScopePayoutsReadpayouts:readHakediş ödemeleri ve bakiye hareketlerini okuma
oauth.ScopeRefundsReadrefunds:readİade kayıtlarını okuma
oauth.ScopeRefundsWriterefunds:writeSipariş iade talebi başlatma
oauth.ScopeShopReadshop:readMağaza sahibi ve mağaza ayarlarını okuma
oauth.ScopeShopWriteshop:writeMağaza ayarlarını güncelleme