Ticket isteğini oyuncu client'ının strict CSRF mutation şeridinde (lane) çalıştıran kanca
(SPEC-0370, Open Play SPEC-0147 D1).
Neden yazıldı: Strict CSRF token'ı tek kullanımlıktır. Ticket isteği token'ı şerit kilidi
dışında okursa eşzamanlı bir mutation ile aynı token'ı harcar, kaybeden 403 alır ve bu 403
oyuncu oturumunu reauthRequired'a düşürür. Kanca ticket'ı mutation'larla aynı sıraya sokar.
Sözleşme (implementer):PlayerClient'ın mutation'larıyla aynı origin kilidini alır; kilit
içinde güncel token'ı (yoksa yeni grant'i) send'e verir ve yanıttaki rotate edilmiş
x-csrf-token'ı kilit bırakılmadan benimser. 403'te aynı kilit bölümünde token'ı temizler, taze grant
alır ve send'i tam bir kez daha çağırır; 401 hiç yeniden denenmez. Son yanıt (ikinci 403 dahil) olduğu gibi döner;
auth eşlemesi realtime client'ındadır. Grant alma veya send hatası aynen iletilir.
403 sonrası taze grant ve yeniden gönderim tek kilit bölümünde yapılır; araya başka sekmenin
grant'i girip tek CSRF çerezini değiştiremez. Kilit alındıktan sonra, grant'ten ve send'den önce
context.signal ve context.generation denetlenir; deadline dolmuş ya da scope değişmişse hiçbir
ağ isteği (grant dahil) yapılmaz.
Parametreler
send: (csrfToken: string | undefined) => Promise<R> — ticket isteğini verilen token ile gönderen
tek deneme; realtime deadline'ı dolmuşsa ağa çıkmadan CrxError(Timeout) ile reddeder.
context: RealtimeCsrfExchangeContext — ticket deadline sinyali ve ticket'ın ait olduğu generation.
Dönüş
Promise<R> — son denemenin HTTP yanıtı.
Hatalar
CrxError — grant alma (GET /v1/auth/csrf) veya send hatası.
Ticket isteğini oyuncu client'ının strict CSRF mutation şeridinde (lane) çalıştıran kanca (SPEC-0370, Open Play SPEC-0147 D1).
Neden yazıldı: Strict CSRF token'ı tek kullanımlıktır. Ticket isteği token'ı şerit kilidi dışında okursa eşzamanlı bir mutation ile aynı token'ı harcar, kaybeden 403 alır ve bu 403 oyuncu oturumunu
reauthRequired'a düşürür. Kanca ticket'ı mutation'larla aynı sıraya sokar. Sözleşme (implementer):PlayerClient'ın mutation'larıyla aynı origin kilidini alır; kilit içinde güncel token'ı (yoksa yeni grant'i)send'e verir ve yanıttaki rotate edilmişx-csrf-token'ı kilit bırakılmadan benimser. 403'te aynı kilit bölümünde token'ı temizler, taze grant alır vesend'i tam bir kez daha çağırır; 401 hiç yeniden denenmez. Son yanıt (ikinci 403 dahil) olduğu gibi döner; auth eşlemesi realtime client'ındadır. Grant alma veyasendhatası aynen iletilir. 403 sonrası taze grant ve yeniden gönderim tek kilit bölümünde yapılır; araya başka sekmenin grant'i girip tek CSRF çerezini değiştiremez. Kilit alındıktan sonra, grant'ten vesend'den öncecontext.signalvecontext.generationdenetlenir; deadline dolmuş ya da scope değişmişse hiçbir ağ isteği (grant dahil) yapılmaz.Parametreler
send: (csrfToken: string | undefined) => Promise<R>— ticket isteğini verilen token ile gönderen tek deneme; realtime deadline'ı dolmuşsa ağa çıkmadanCrxError(Timeout)ile reddeder.context: RealtimeCsrfExchangeContext— ticket deadline sinyali ve ticket'ın ait olduğu generation.Dönüş
Promise<R>— son denemenin HTTP yanıtı.Hatalar
CrxError— grant alma (GET /v1/auth/csrf) veyasendhatası.