{"id":38280,"date":"2026-01-27T16:23:56","date_gmt":"2026-01-27T13:23:56","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/"},"modified":"2026-01-27T16:23:56","modified_gmt":"2026-01-27T13:23:56","slug":"oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/","title":{"rendered":"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?"},"content":{"rendered":"<p><title>OAuth 2&#8217;ye Giri\u015f: G\u00fcvenli Yetkilendirme Rehberi<\/title><br \/>\n<body><\/p>\n<p>Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131 verilerini korumas\u0131 hi\u00e7 bu kadar kritik olmam\u0131\u015ft\u0131. Peki, bir uygulaman\u0131n ba\u015fka bir uygulaman\u0131n kaynaklar\u0131na, kullan\u0131c\u0131 \u015fifresini bilmeden, g\u00fcvenli bir \u015fekilde nas\u0131l eri\u015fti\u011fini merak ettiniz mi? \u0130\u015fte bu noktada OAuth 2 devreye giriyor. Bu kapsaml\u0131 rehberde, OAuth 2&#8217;nin temel prensiplerinden ileri d\u00fczey g\u00fcvenlik pratiklerine kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kod \u00f6rnekleriyle konuyu derinlemesine kavrayacaks\u0131n\u0131z.<\/p>\n<h2>OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?<\/h2>\n<p>Dijital platformlar aras\u0131ndaki etkile\u015fimler her ge\u00e7en g\u00fcn artarken, kullan\u0131c\u0131 verilerinin g\u00fcvenli\u011fi ve gizlili\u011fi en b\u00fcy\u00fck \u00f6ncelik haline geldi. Bir web sitesine veya mobil uygulamaya kaydoldu\u011funuzda, genellikle &#8220;Google ile Giri\u015f Yap&#8221; veya &#8220;Facebook ile Devam Et&#8221; gibi se\u00e7enekler g\u00f6r\u00fcrs\u00fcn\u00fcz. Bu kolayl\u0131k ve g\u00fcvenli\u011fin arkas\u0131ndaki temel mekanizma, OAuth 2 olarak bilinir. OAuth 2, bir yetkilendirme \u00e7er\u00e7evesidir; yani, bir uygulaman\u0131n (istemci) ba\u015fka bir uygulamadaki (kaynak sunucusu) belirli kaynaklara (kullan\u0131c\u0131 verileri gibi) kullan\u0131c\u0131n\u0131n (kaynak sahibi) onay\u0131yla ve \u015fifresini payla\u015fmadan eri\u015fmesine izin veren bir protokold\u00fcr.<\/p>\n<p>Peki, OAuth 2 neden bu kadar \u00f6nemli? Geleneksel olarak, bir uygulama ba\u015fka bir servise eri\u015fmek istedi\u011finde, kullan\u0131c\u0131dan o servisin kullan\u0131c\u0131 ad\u0131 ve \u015fifresini girmesi istenirdi. Bu yakla\u015f\u0131m, \u00e7e\u015fitli g\u00fcvenlik riskleri ta\u015f\u0131yordu: \u0130stemci uygulama, kullan\u0131c\u0131n\u0131n kimlik bilgilerini saklamak zorunda kalacak, bu da bir veri ihlali durumunda t\u00fcm hesaplar\u0131n\u0131n tehlikeye girmesine yol a\u00e7abilecekti. Ayr\u0131ca, kullan\u0131c\u0131, istemci uygulaman\u0131n hangi verilere eri\u015fti\u011fi konusunda hi\u00e7bir kontrole sahip de\u011fildi. OAuth 2, bu sorunlar\u0131 ortadan kald\u0131rarak, kullan\u0131c\u0131lara eri\u015fim izni \u00fczerinde daha fazla kontrol sa\u011fl\u0131yor ve hassas kimlik bilgilerini do\u011frudan istemci uygulamalarla payla\u015fma ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131yor.<\/p>\n<p>OAuth 2&#8217;nin temelinde d\u00f6rt ana rol bulunur:<\/p>\n<ul>\n<li><strong>Kaynak Sahibi (Resource Owner):<\/strong> Genellikle son kullan\u0131c\u0131d\u0131r. Kendi verilerine (\u00f6rne\u011fin, e-posta, foto\u011fraflar, takvim) sahip olan ve bu verilere eri\u015fim izni veren ki\u015fidir.<\/li>\n<li><strong>\u0130stemci (Client):<\/strong> Kaynak sahibinin verilerine eri\u015fmek isteyen uygulamad\u0131r. Bu, bir web uygulamas\u0131, mobil uygulama veya masa\u00fcst\u00fc uygulamas\u0131 olabilir. \u0130stemcinin, yetkilendirme sunucusuna kay\u0131tl\u0131 olmas\u0131 gerekir.<\/li>\n<li><strong>Yetkilendirme Sunucusu (Authorization Server):<\/strong> Kaynak sahibinin kimli\u011fini do\u011frular ve istemcinin kaynak sunucusuna eri\u015fim yetkisi almas\u0131 i\u00e7in bir eri\u015fim token\u0131 verir. Genellikle kaynak sunucusu ile ayn\u0131 kurulu\u015f i\u00e7inde yer al\u0131r.<\/li>\n<li><strong>Kaynak Sunucusu (Resource Server):<\/strong> Kaynak sahibinin korumal\u0131 kaynaklar\u0131n\u0131 bar\u0131nd\u0131ran ve eri\u015fim token\u0131n\u0131 kullanarak bu kaynaklara eri\u015fim sa\u011flayan sunucudur. \u00d6rne\u011fin, Google Drive veya Facebook API&#8217;si.<\/li>\n<\/ul>\n<p>Bu roller aras\u0131ndaki etkile\u015fim sayesinde, bir kullan\u0131c\u0131n\u0131n \u015fifresi hi\u00e7bir zaman istemci uygulamas\u0131na ula\u015fmaz. Bunun yerine, istemciye belirli bir s\u00fcre ve belirli kapsamlar dahilinde ge\u00e7erli olan bir &#8220;eri\u015fim token\u0131&#8221; verilir. Bu token, kullan\u0131c\u0131n\u0131n onay\u0131yla, istemcinin kaynak sunucusundaki belirli verilere eri\u015fmesini sa\u011flar. \u00d6rne\u011fin, bir foto\u011fraf d\u00fczenleme uygulamas\u0131n\u0131n Google Foto\u011fraflar&#8217;\u0131n\u0131za sadece foto\u011fraflar\u0131 okuma izni almas\u0131 ve e-postalar\u0131n\u0131za asla eri\u015fememesi gibi. Bu model, hem kullan\u0131c\u0131 gizlili\u011fini art\u0131r\u0131r hem de uygulamalar aras\u0131 entegrasyonlar\u0131 \u00e7ok daha g\u00fcvenli hale getirir. Dolay\u0131s\u0131yla, OAuth 2 modern API g\u00fcvenli\u011finin ve kullan\u0131c\u0131 deneyiminin vazge\u00e7ilmez bir par\u00e7as\u0131d\u0131r.<\/p>\n<h2>OAuth 2 Ak\u0131\u015flar\u0131 (Grant Tipleri): Hangi Senaryoya Hangi Ak\u0131\u015f Uygun?<\/h2>\n<p>OAuth 2, farkl\u0131 kullan\u0131m senaryolar\u0131na uyum sa\u011flamak i\u00e7in \u00e7e\u015fitli &#8220;grant tipleri&#8221; veya &#8220;yetkilendirme ak\u0131\u015flar\u0131&#8221; sunar. Her ak\u0131\u015f, istemcinin yetkilendirme sunucusundan eri\u015fim token\u0131n\u0131 nas\u0131l talep etti\u011fini ve ald\u0131\u011f\u0131n\u0131 belirler. Bu ak\u0131\u015flar, istemcinin g\u00fcven seviyesine, uygulaman\u0131n t\u00fcr\u00fcne (web, mobil, masa\u00fcst\u00fc, arka plan servisi) ve g\u00fcvenlik gereksinimlerine g\u00f6re se\u00e7ilir. Do\u011fru ak\u0131\u015f\u0131 se\u00e7mek, uygulaman\u0131z\u0131n g\u00fcvenli\u011fi ve i\u015flevselli\u011fi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Yetkilendirme Kodu Ak\u0131\u015f\u0131 (Authorization Code Grant): En Yayg\u0131n ve G\u00fcvenli Y\u00f6ntem<\/h3>\n<p>Yetkilendirme Kodu Ak\u0131\u015f\u0131, genellikle geleneksel web uygulamalar\u0131 ve modern tek sayfa uygulamalar\u0131 (SPA) ile mobil uygulamalar i\u00e7in \u00f6nerilen en g\u00fcvenli ve yayg\u0131n kullan\u0131lan ak\u0131\u015ft\u0131r. Bu ak\u0131\u015f, istemcinin hassas eri\u015fim token\u0131n\u0131 do\u011frudan almas\u0131n\u0131 engeller ve bunun yerine, \u00f6nce bir &#8220;yetkilendirme kodu&#8221; al\u0131r. Bu kod, daha sonra yetkilendirme sunucusuyla do\u011frudan, g\u00fcvenli bir arka kanal \u00fczerinden eri\u015fim token\u0131 ile de\u011fi\u015ftirilir.<\/p>\n<p>Ak\u0131\u015f ad\u0131mlar\u0131 \u015fu \u015fekildedir:<\/p>\n<ol>\n<li><strong>Yetkilendirme \u0130ste\u011fi:<\/strong> Kullan\u0131c\u0131, istemci uygulamada bir i\u015flem ba\u015flat\u0131r (\u00f6rne\u011fin, &#8220;Google ile Giri\u015f Yap&#8221;). \u0130stemci, kullan\u0131c\u0131y\u0131 yetkilendirme sunucusuna y\u00f6nlendirir. Bu y\u00f6nlendirme URL&#8217;si, istemcinin kimli\u011fini (<code>client_id<\/code>), istenen izinleri (<code>scope<\/code>), y\u00f6nlendirme URI&#8217;sini (<code>redirect_uri<\/code>) ve bir CSRF korumas\u0131 i\u00e7in <code>state<\/code> parametresini i\u00e7erir.<\/li>\n<li><strong>Kullan\u0131c\u0131 Onay\u0131:<\/strong> Kullan\u0131c\u0131, yetkilendirme sunucusuna kimlik bilgilerini girerek giri\u015f yapar (e\u011fer daha \u00f6nce yapmad\u0131ysa). Yetkilendirme sunucusu, istemcinin istedi\u011fi izinleri kullan\u0131c\u0131ya g\u00f6sterir ve kullan\u0131c\u0131dan bu izinleri onaylamas\u0131n\u0131 ister.<\/li>\n<li><strong>Yetkilendirme Kodu:<\/strong> Kullan\u0131c\u0131 izinleri onaylad\u0131ktan sonra, yetkilendirme sunucusu kullan\u0131c\u0131y\u0131 \u00f6nceden kay\u0131tl\u0131 olan <code>redirect_uri<\/code>&#8216;ye bir yetkilendirme kodu (<code>code<\/code>) ve <code>state<\/code> parametresi ile geri y\u00f6nlendirir.<\/li>\n<li><strong>Token Talebi:<\/strong> \u0130stemci uygulama (arka u\u00e7 sunucusu), ald\u0131\u011f\u0131 yetkilendirme kodunu ve kendi <code>client_secret<\/code>&#8216;\u0131n\u0131 kullanarak yetkilendirme sunucusuna do\u011frudan bir HTTP POST iste\u011fi g\u00f6nderir. Bu istek, taray\u0131c\u0131 \u00fczerinden de\u011fil, sunucular aras\u0131 g\u00fcvenli bir ba\u011flant\u0131 \u00fczerinden yap\u0131l\u0131r.<\/li>\n<li><strong>Eri\u015fim Token\u0131:<\/strong> Yetkilendirme sunucusu, yetkilendirme kodunu ve istemci kimlik bilgilerini do\u011frular. Ba\u015far\u0131l\u0131 olursa, istemciye bir eri\u015fim token\u0131 (<code>access_token<\/code>), bir yenileme token\u0131 (<code>refresh_token<\/code> &#8211; iste\u011fe ba\u011fl\u0131) ve token\u0131n ge\u00e7erlilik s\u00fcresi (<code>expires_in<\/code>) ile birlikte yan\u0131t verir.<\/li>\n<li><strong>Kaynak Eri\u015fimi:<\/strong> \u0130stemci, ald\u0131\u011f\u0131 eri\u015fim token\u0131n\u0131 kullanarak kaynak sunucusundaki korumal\u0131 kaynaklara eri\u015fmek i\u00e7in API \u00e7a\u011fr\u0131lar\u0131 yapar.<\/li>\n<\/ol>\n<p><strong>PKCE (Proof Key for Code Exchange)<\/strong> uzant\u0131s\u0131, \u00f6zellikle genel istemciler (native mobil uygulamalar ve SPA&#8217;lar) i\u00e7in Yetkilendirme Kodu Ak\u0131\u015f\u0131&#8217;n\u0131 daha da g\u00fcvenli hale getirir. PKCE, yetkilendirme kodunun \u00e7al\u0131nmas\u0131 durumunda bile k\u00f6t\u00fc niyetli bir uygulaman\u0131n eri\u015fim token\u0131 almas\u0131n\u0131 engeller. \u0130stemci, yetkilendirme iste\u011fi s\u0131ras\u0131nda tek kullan\u0131ml\u0131k bir &#8220;code verifier&#8221; olu\u015fturur ve bunun hash&#8217;ini (<code>code_challenge<\/code>) g\u00f6nderir. Token talebi s\u0131ras\u0131nda ise orijinal <code>code_verifier<\/code>&#8216;\u0131 g\u00f6ndererek kimli\u011fini kan\u0131tlar. Bu, yetkilendirme kodunu dinleyen bir sald\u0131rgan\u0131n bile do\u011fru <code>code_verifier<\/code> olmadan token alamamas\u0131n\u0131 sa\u011flar.<\/p>\n<div class=\"uzman-ipucu\">\n  Uzman \u0130pucu: PKCE, mobil ve SPA uygulamalar\u0131 i\u00e7in Yetkilendirme Kodu Ak\u0131\u015f\u0131&#8217;n\u0131n vazge\u00e7ilmez bir g\u00fcvenlik katman\u0131d\u0131r. Her zaman PKCE ile birlikte kullanmay\u0131 hedefleyin.\n<\/div>\n<p>Yetkilendirme iste\u011fi \u00f6rne\u011fi:<\/p>\n<pre><code>\nGET https:\/\/\u00f6rnek.com\/oauth\/authorize?\n  response_type=code&amp;\n  client_id=uygulama_kimli\u011fi&amp;\n  redirect_uri=https:\/\/uygulama.com\/callback&amp;\n  scope=email%20profile&amp;\n  state=rastgele_de\u011fer&amp;\n  code_challenge=S256HashDe\u011feri&amp;\n  code_challenge_method=S256\n<\/code><\/pre>\n<p>Token de\u011fi\u015fimi \u00f6rne\u011fi (arka u\u00e7tan cURL ile):<\/p>\n<pre><code>\ncurl -X POST https:\/\/\u00f6rnek.com\/oauth\/token \\\n  -H \"Content-Type: application\/x-www-form-urlencoded\" \\\n  -d \"grant_type=authorization_code&amp;\n      code=yetkilendirme_kodu&amp;\n      redirect_uri=https:\/\/uygulama.com\/callback&amp;\n      client_id=uygulama_kimli\u011fi&amp;\n      client_secret=uygulama_gizli_anahtar\u0131&amp;\n      code_verifier=orijinal_rastgele_de\u011fer\"\n<\/code><\/pre>\n<h3>\u0130stemci Kimlik Bilgileri Ak\u0131\u015f\u0131 (Client Credentials Grant): Uygulamadan Uygulamaya G\u00fcvenli \u0130leti\u015fim<\/h3>\n<p>Bu ak\u0131\u015f, son kullan\u0131c\u0131dan herhangi bir etkile\u015fim veya onay gerektirmeyen, do\u011frudan istemci ile yetkilendirme sunucusu aras\u0131ndaki bir ak\u0131\u015ft\u0131r. Genellikle, bir uygulaman\u0131n kendi kaynaklar\u0131na eri\u015fmesi veya bir arka plan servisinin ba\u015fka bir servisin API&#8217;sine eri\u015fmesi gerekti\u011finde kullan\u0131l\u0131r. Yani, kaynak sahibi bizzat istemcinin kendisi veya istemcinin kontrol etti\u011fi bir varl\u0131kt\u0131r.<\/p>\n<p>\u00d6rnek kullan\u0131m alanlar\u0131:<\/p>\n<ul>\n<li>Mikroservisler aras\u0131 ileti\u015fimde, bir servisin di\u011fer bir servisin API&#8217;sine eri\u015fmesi.<\/li>\n<li>Arka plan g\u00f6revleri veya cron i\u015fleri, kullan\u0131c\u0131 ad\u0131na de\u011fil, uygulaman\u0131n kendi ad\u0131na i\u015flem yapmas\u0131 gerekti\u011finde.<\/li>\n<li>Y\u00f6netim panelleri veya ara\u00e7lar\u0131, genel API&#8217;leri \u00e7a\u011f\u0131rmak i\u00e7in.<\/li>\n<\/ul>\n<p>Bu ak\u0131\u015fta, istemci, kendi <code>client_id<\/code> ve <code>client_secret<\/code> bilgilerini kullanarak do\u011frudan yetkilendirme sunucusundan bir eri\u015fim token\u0131 talep eder. Kullan\u0131c\u0131 y\u00f6nlendirmesi veya onay\u0131 ad\u0131m\u0131 yoktur.<\/p>\n<p>Token talebi \u00f6rne\u011fi (cURL ile):<\/p>\n<pre><code>\ncurl -X POST https:\/\/\u00f6rnek.com\/oauth\/token \\\n  -H \"Content-Type: application\/x-www-form-urlencoded\" \\\n  -d \"grant_type=client_credentials&amp;\n      client_id=uygulama_kimli\u011fi&amp;\n      client_secret=uygulama_gizli_anahtar\u0131&amp;\n      scope=api_erisim_kapsam\u0131\"\n<\/code><\/pre>\n<h3>Implicit Ak\u0131\u015f\u0131 (Implicit Grant) ve Parola Ak\u0131\u015f\u0131 (Resource Owner Password Credentials Grant): Neden Art\u0131k Tercih Edilmiyorlar?<\/h3>\n<p>OAuth 2&#8217;nin ilk s\u00fcr\u00fcmlerinde pop\u00fcler olan bu iki ak\u0131\u015f, modern g\u00fcvenlik pratikleri \u0131\u015f\u0131\u011f\u0131nda art\u0131k \u00f6nerilmemektedir ve m\u00fcmk\u00fcnse kullan\u0131lmamal\u0131d\u0131r.<\/p>\n<ul>\n<li><strong>Implicit Ak\u0131\u015f\u0131:<\/strong> Tek sayfa uygulamalar\u0131 (SPA) i\u00e7in tasarlanm\u0131\u015ft\u0131 ve eri\u015fim token\u0131n\u0131 do\u011frudan taray\u0131c\u0131daki URL fragment&#8217;\u0131 olarak d\u00f6nd\u00fcr\u00fcyordu. Ancak, bu tokenlar\u0131n URL ge\u00e7mi\u015finde kalmas\u0131, taray\u0131c\u0131 uzant\u0131lar\u0131 taraf\u0131ndan okunabilmesi ve CSRF sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131z olmas\u0131 gibi g\u00fcvenlik zafiyetleri nedeniyle terk edildi. G\u00fcn\u00fcm\u00fczde SPA&#8217;lar i\u00e7in PKCE ile birlikte Yetkilendirme Kodu Ak\u0131\u015f\u0131 tercih edilmektedir.<\/li>\n<li><strong>Parola Ak\u0131\u015f\u0131:<\/strong> Bu ak\u0131\u015fta, istemci do\u011frudan kullan\u0131c\u0131n\u0131n kullan\u0131c\u0131 ad\u0131 ve \u015fifresini alarak yetkilendirme sunucusuna g\u00f6nderir ve eri\u015fim token\u0131 talep eder. Bu, kullan\u0131c\u0131n\u0131n kimlik bilgilerini do\u011frudan istemci uygulamas\u0131na vermesini gerektirdi\u011fi i\u00e7in b\u00fcy\u00fck bir g\u00fcvenlik riski ta\u015f\u0131r. \u0130stemci uygulamas\u0131n\u0131n g\u00fcvenli\u011fi ihlal edilirse, kullan\u0131c\u0131n\u0131n kimlik bilgileri de a\u00e7\u0131\u011fa \u00e7\u0131kar. Bu ak\u0131\u015f yaln\u0131zca, kullan\u0131c\u0131n\u0131n istemci uygulamas\u0131na tamamen g\u00fcvendi\u011fi ve ba\u015fka bir yetkilendirme ak\u0131\u015f\u0131n\u0131n m\u00fcmk\u00fcn olmad\u0131\u011f\u0131 \u00e7ok \u00f6zel durumlarda (\u00f6rne\u011fin, ayn\u0131 kurulu\u015fa ait, son derece g\u00fcvenilir, birinci taraf uygulamalar) kullan\u0131lmal\u0131d\u0131r. Genellikle, bu ak\u0131\u015f yerine Yetkilendirme Kodu Ak\u0131\u015f\u0131 (PKCE ile) veya uygunsa di\u011fer ak\u0131\u015flar tercih edilmelidir.<\/li>\n<\/ul>\n<p>Her ak\u0131\u015f\u0131n kendine \u00f6zg\u00fc avantajlar\u0131 ve dezavantajlar\u0131 vard\u0131r. Uygulaman\u0131z\u0131n mimarisine, g\u00fcvenlik gereksinimlerine ve kullan\u0131c\u0131 deneyimi hedeflerine en uygun ak\u0131\u015f\u0131 se\u00e7mek, ba\u015far\u0131l\u0131 bir OAuth 2 entegrasyonunun anahtar\u0131d\u0131r.<\/p>\n<h2>OAuth 2 Uygulamas\u0131nda G\u00fcvenlik \u0130pu\u00e7lar\u0131 ve \u0130leri D\u00fczey Konular<\/h2>\n<p>OAuth 2, g\u00fc\u00e7l\u00fc bir yetkilendirme \u00e7er\u00e7evesi olmas\u0131na ra\u011fmen, yanl\u0131\u015f uyguland\u0131\u011f\u0131nda g\u00fcvenlik zafiyetlerine yol a\u00e7abilir. Bu nedenle, uygulamalar\u0131 geli\u015ftirirken belirli g\u00fcvenlik pratiklerine uymak ve ileri d\u00fczey konular\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmak hayati \u00f6nem ta\u015f\u0131r. \u0130\u015fte OAuth 2 uygulaman\u0131z\u0131 daha sa\u011flam hale getirmek i\u00e7in baz\u0131 ipu\u00e7lar\u0131 ve p\u00fcf noktalar\u0131.<\/p>\n<h3>Token Y\u00f6netimi: Eri\u015fim ve Yenileme Tokenlar\u0131n\u0131 G\u00fcvenle Saklamak<\/h3>\n<p>Eri\u015fim tokenlar\u0131 ve yenileme tokenlar\u0131, OAuth 2&#8217;nin kalbinde yer al\u0131r ve bunlar\u0131n g\u00fcvenli bir \u015fekilde y\u00f6netilmesi en kritik g\u00fcvenlik konular\u0131ndan biridir. Eri\u015fim tokenlar\u0131 genellikle k\u0131sa \u00f6m\u00fcrl\u00fcd\u00fcr (\u00f6rne\u011fin, 5-60 dakika) ve kaynak sunucusuna yap\u0131lan API \u00e7a\u011fr\u0131lar\u0131n\u0131 yetkilendirmek i\u00e7in kullan\u0131l\u0131r. Yenileme tokenlar\u0131 ise daha uzun \u00f6m\u00fcrl\u00fcd\u00fcr (\u00f6rne\u011fin, g\u00fcnler, haftalar veya aylar) ve s\u00fcresi dolmu\u015f bir eri\u015fim token\u0131 yerine yeni bir eri\u015fim token\u0131 almak i\u00e7in kullan\u0131l\u0131r. Bu ayr\u0131m, bir eri\u015fim token\u0131 \u00e7al\u0131nsa bile, sald\u0131rgan\u0131n s\u0131n\u0131rl\u0131 bir s\u00fcreye sahip olmas\u0131n\u0131 ve yenileme token\u0131 olmadan s\u00fcrekli eri\u015fim sa\u011flayamamas\u0131n\u0131 sa\u011flar.<\/p>\n<p><strong>Tokenlar\u0131 nerede saklamal\u0131y\u0131z?<\/strong><\/p>\n<ul>\n<li><strong>Eri\u015fim Tokenlar\u0131:<\/strong>\n<ul>\n<li><strong>Sunucu Taraf\u0131 (Web Uygulamalar\u0131):<\/strong> E\u011fer uygulaman\u0131z\u0131n bir arka ucu varsa, eri\u015fim tokenlar\u0131n\u0131 sunucu taraf\u0131nda g\u00fcvenli bir \u015fekilde (\u00f6rne\u011fin, \u015fifrelenmi\u015f veritaban\u0131 veya g\u00fcvenli bellek alan\u0131) saklamak en iyisidir. Bu sayede tokenlar taray\u0131c\u0131da do\u011frudan a\u00e7\u0131\u011fa \u00e7\u0131kmaz.<\/li>\n<li><strong>Taray\u0131c\u0131 Taraf\u0131 (SPA&#8217;lar):<\/strong> SPA&#8217;lar i\u00e7in durum daha karma\u015f\u0131kt\u0131r. <code>localStorage<\/code> veya <code>sessionStorage<\/code> kullanmak XSS (Cross-Site Scripting) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131zd\u0131r. HTTP Only cookie&#8217;ler, XSS&#8217;e kar\u015f\u0131 daha g\u00fcvenli olsa da, CSRF sald\u0131r\u0131lar\u0131na kar\u015f\u0131 ek \u00f6nlemler (<code>SameSite<\/code> attribute, <code>state<\/code> parametresi) gerektirir. En iyi pratik, tokenlar\u0131 m\u00fcmk\u00fcn oldu\u011funca k\u0131sa \u00f6m\u00fcrl\u00fc tutmak ve yenileme token\u0131n\u0131 asla taray\u0131c\u0131da saklamamakt\u0131r.<\/li>\n<li><strong>Mobil Uygulamalar:<\/strong> Platforma \u00f6zg\u00fc g\u00fcvenli depolama mekanizmalar\u0131 (iOS Keychain, Android Keystore) kullan\u0131lmal\u0131d\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Yenileme Tokenlar\u0131:<\/strong>\n<ul>\n<li>Yenileme tokenlar\u0131, eri\u015fim tokenlar\u0131ndan daha hassast\u0131r \u00e7\u00fcnk\u00fc daha uzun s\u00fcre ge\u00e7erlidirler ve yeni eri\u015fim tokenlar\u0131 al\u0131nmas\u0131n\u0131 sa\u011flarlar. Bu nedenle, yenileme tokenlar\u0131 asla taray\u0131c\u0131da (<code>localStorage<\/code>, <code>sessionStorage<\/code>) saklanmamal\u0131d\u0131r.<\/li>\n<li><strong>Sunucu Taraf\u0131:<\/strong> Yenileme tokenlar\u0131 her zaman sunucu taraf\u0131nda, \u015fifrelenmi\u015f ve g\u00fcvenli bir \u015fekilde saklanmal\u0131d\u0131r.<\/li>\n<li><strong>Mobil Uygulamalar:<\/strong> G\u00fcvenli depolama alanlar\u0131 (Keychain, Keystore) kullan\u0131lmal\u0131 ve eri\u015fimleri s\u0131k\u0131 bir \u015fekilde kontrol edilmelidir.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Token \u0130ptali (Revocation):<\/strong> Bir kullan\u0131c\u0131n\u0131n oturumu kapat\u0131ld\u0131\u011f\u0131nda veya bir g\u00fcvenlik ihlali \u015f\u00fcphesi oldu\u011funda, eri\u015fim ve yenileme tokenlar\u0131n\u0131n yetkilendirme sunucusu taraf\u0131ndan derhal iptal edilmesi \u00f6nemlidir. Bu, \u00e7al\u0131nan tokenlar\u0131n k\u00f6t\u00fcye kullan\u0131lmas\u0131n\u0131 engeller.<\/p>\n<h3>Kapsam (Scope) Y\u00f6netimi: Yetkilendirmeyi En Aza \u0130ndirmek<\/h3>\n<p>Kapsamlar, bir istemcinin kaynak sunucusundaki hangi verilere veya i\u015flevlere eri\u015febilece\u011fini tan\u0131mlayan izin setleridir. \u00d6rne\u011fin, <code>read:email<\/code>, <code>write:calendar<\/code> veya <code>profile<\/code> gibi kapsamlar olabilir. &#8220;En Az Yetkilendirme Prensibi&#8221; (Principle of Least Privilege) gere\u011fi, istemci uygulamalara yaln\u0131zca ger\u00e7ekten ihtiya\u00e7 duyduklar\u0131 kapsamlar verilmelidir. Bu, olas\u0131 bir g\u00fcvenlik ihlali durumunda, sald\u0131rgan\u0131n eri\u015febilece\u011fi veri miktar\u0131n\u0131 s\u0131n\u0131rlar.<\/p>\n<ul>\n<li>\u0130stemcinizin ihtiya\u00e7 duydu\u011fu minimum kapsamlar\u0131 belirleyin.<\/li>\n<li>Kullan\u0131c\u0131ya, uygulaman\u0131n talep etti\u011fi kapsamlar\u0131 a\u00e7\u0131k\u00e7a g\u00f6sterin ve onay\u0131n\u0131 al\u0131n.<\/li>\n<li>Gereksiz veya geni\u015f kapsaml\u0131 izinlerden ka\u00e7\u0131n\u0131n.<\/li>\n<\/ul>\n<h3>G\u00fcvenlik A\u00e7\u0131klar\u0131 ve \u00d6nlemler: OAuth 2&#8217;yi Daha Sa\u011flam Hale Getirmek<\/h3>\n<p>OAuth 2&#8217;nin do\u011fru uygulanmas\u0131, yayg\u0131n web g\u00fcvenlik a\u00e7\u0131klar\u0131na kar\u015f\u0131 koruma sa\u011flar. Ancak, baz\u0131 \u00f6zel durumlar ve sald\u0131r\u0131 vekt\u00f6rleri i\u00e7in ek \u00f6nlemler almak gerekir.<\/p>\n<ul>\n<li><strong>CSRF (Cross-Site Request Forgery) Korumas\u0131:<\/strong> Yetkilendirme Kodu Ak\u0131\u015f\u0131&#8217;nda <code>state<\/code> parametresi, CSRF sald\u0131r\u0131lar\u0131n\u0131 \u00f6nlemek i\u00e7in kritik \u00f6neme sahiptir. \u0130stemci, yetkilendirme iste\u011fi g\u00f6nderirken rastgele, tahmin edilemez bir <code>state<\/code> de\u011feri olu\u015fturur ve bunu kendi oturumunda saklar. Yetkilendirme sunucusu, kullan\u0131c\u0131y\u0131 geri y\u00f6nlendirdi\u011finde, <code>state<\/code> parametresini de geri g\u00f6nderir. \u0130stemci, gelen <code>state<\/code> de\u011ferini kendi saklad\u0131\u011f\u0131 de\u011ferle kar\u015f\u0131la\u015ft\u0131rmal\u0131d\u0131r. E\u011fer e\u015fle\u015fmezse, iste\u011fi reddetmelidir. Bu, sald\u0131rgan\u0131n sahte bir yetkilendirme iste\u011fi olu\u015fturup kullan\u0131c\u0131n\u0131n taray\u0131c\u0131s\u0131n\u0131 kullanarak yetkisiz bir i\u015flem yapmas\u0131n\u0131 engeller.<\/li>\n<li><strong>Redirect URI Do\u011frulamas\u0131:<\/strong> \u0130stemcinin kay\u0131tl\u0131 <code>redirect_uri<\/code>&#8216;leri, yetkilendirme sunucusu taraf\u0131ndan s\u0131k\u0131 bir \u015fekilde do\u011frulanmal\u0131d\u0131r. Sald\u0131rganlar\u0131n kullan\u0131c\u0131lar\u0131 k\u00f6t\u00fc niyetli bir URI&#8217;ye y\u00f6nlendirmesini (open redirect) engellemek i\u00e7in, yetkilendirme sunucusu yaln\u0131zca \u00f6nceden kay\u0131tl\u0131 ve tam e\u015fle\u015fen URI&#8217;lere y\u00f6nlendirme yapmal\u0131d\u0131r.<\/li>\n<li><strong>PKCE (Proof Key for Code Exchange) Kullan\u0131m\u0131:<\/strong> Yukar\u0131da da belirtildi\u011fi gibi, \u00f6zellikle genel istemciler (mobil, SPA) i\u00e7in PKCE, yetkilendirme kodunun \u00e7al\u0131nmas\u0131 durumunda bile eri\u015fim token\u0131n\u0131n k\u00f6t\u00fcye kullan\u0131lmas\u0131n\u0131 engelleyen temel bir g\u00fcvenlik mekanizmas\u0131d\u0131r.<\/li>\n<li><strong>Client Secret G\u00fcvenli\u011fi:<\/strong> \u0130stemcinin gizli anahtar\u0131 (<code>client_secret<\/code>), istemci kimlik bilgileri ak\u0131\u015f\u0131 ve yetkilendirme kodu ak\u0131\u015f\u0131nda token de\u011fi\u015fimi i\u00e7in kullan\u0131l\u0131r. Bu anahtar, yaln\u0131zca yetkilendirme sunucusu ve istemcinin arka u\u00e7 sunucusu aras\u0131nda bilinmeli ve asla taray\u0131c\u0131da, mobil uygulamada veya herhangi bir genel istemcide a\u00e7\u0131\u011fa \u00e7\u0131kar\u0131lmamal\u0131d\u0131r.<\/li>\n<\/ul>\n<h3>Mobil Uygulamalar ve OAuth 2: En \u0130yi Pratikler<\/h3>\n<p>Mobil uygulamalar, taray\u0131c\u0131 tabanl\u0131 uygulamalardan farkl\u0131 g\u00fcvenlik zorluklar\u0131 sunar. Bu nedenle OAuth 2&#8217;yi mobil uygulamalarda uygularken baz\u0131 \u00f6zel pratiklere dikkat etmek gerekir.<\/p>\n<ul>\n<li><strong>Sistem Taray\u0131c\u0131s\u0131 Kullan\u0131m\u0131:<\/strong> Mobil uygulamalarda OAuth ak\u0131\u015f\u0131n\u0131 ba\u015flat\u0131rken, uygulaman\u0131n kendi i\u00e7inde g\u00f6m\u00fcl\u00fc bir <code>webview<\/code> yerine, cihaz\u0131n yerel sistem taray\u0131c\u0131s\u0131n\u0131 (Custom Tabs, SFSafariViewController gibi) kullanmak en g\u00fcvenli yakla\u015f\u0131md\u0131r. Bu, kullan\u0131c\u0131n\u0131n kimlik bilgilerinin ve oturum \u00e7erezlerinin uygulaman\u0131n kontrol\u00fcnden ziyade i\u015fletim sisteminin g\u00fcvenli ortam\u0131nda i\u015flenmesini sa\u011flar.<\/li>\n<li><strong>PKCE Zorunlulu\u011fu:<\/strong> Mobil uygulamalar &#8220;genel istemci&#8221; kabul edildi\u011fi i\u00e7in, <code>client_secret<\/code>&#8216;\u0131 g\u00fcvenli bir \u015fekilde saklayamazlar. Bu nedenle, mobil uygulamalarda Yetkilendirme Kodu Ak\u0131\u015f\u0131 her zaman PKCE ile birlikte kullan\u0131lmal\u0131d\u0131r.<\/li>\n<li><strong>\u00d6zel URI \u015eemalar\u0131 (Custom URI Schemes) veya Universal Links\/App Links:<\/strong> Yetkilendirme sunucusunun kullan\u0131c\u0131y\u0131 geri y\u00f6nlendirmesi i\u00e7in \u00f6zel bir URI \u015femas\u0131 (\u00f6rne\u011fin, <code>myapp:\/\/callback<\/code>) veya Universal Links\/App Links gibi derin ba\u011flant\u0131 mekanizmalar\u0131 kullan\u0131l\u0131r. Bu URI&#8217;ler, uygulaman\u0131n kurulumu s\u0131ras\u0131nda i\u015fletim sistemine kay\u0131tl\u0131 olmal\u0131 ve yetkilendirme sunucusunda do\u011fru \u015fekilde yap\u0131land\u0131r\u0131lmal\u0131d\u0131r.<\/li>\n<\/ul>\n<div class=\"uzman-ipucu\">\n  Uzman \u0130pucu: Mobil uygulamalarda OAuth ak\u0131\u015f\u0131n\u0131 ba\u015flat\u0131rken, kullan\u0131c\u0131y\u0131 do\u011frudan sistem taray\u0131c\u0131s\u0131na y\u00f6nlendirmek (Custom Tabs veya SFSafariViewController gibi) g\u00fcvenlik a\u00e7\u0131s\u0131ndan en iyi yakla\u015f\u0131md\u0131r. Bu, uygulaman\u0131z\u0131n hassas kimlik bilgilerine eri\u015fmesini engeller.\n<\/div>\n<p><strong>Mobil Uyumlu HTML ve CSS (Metinsel A\u00e7\u0131klama):<\/strong> OAuth ak\u0131\u015f\u0131 s\u0131ras\u0131nda kullan\u0131c\u0131, yetkilendirme sunucusunun web aray\u00fcz\u00fcne y\u00f6nlendirilir. Bu aray\u00fczlerin mobil cihazlarda da sorunsuz bir kullan\u0131c\u0131 deneyimi sunmas\u0131 \u00f6nemlidir. Yetkilendirme sunucusunun kullan\u0131c\u0131 aray\u00fcz\u00fc, responsive tasar\u0131m prensiplerine uygun olarak geli\u015ftirilmelidir. Bu, HTML&#8217;de uygun <code>viewport<\/code> meta etiketi kullan\u0131m\u0131 ve CSS&#8217;te medya sorgular\u0131 (<code>@media screen and (max-width: 768px) { ... }<\/code> gibi) ile farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flanmas\u0131 anlam\u0131na gelir. Bu sayede, kullan\u0131c\u0131lar hem web hem de mobil platformlarda kolayca izinleri onaylayabilir veya reddedebilir.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Bir Uygulama Entegrasyonu Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h2>\n<p>OAuth 2&#8217;nin teorik yap\u0131s\u0131n\u0131 anlamak \u00f6nemlidir, ancak ger\u00e7ek bir senaryo \u00fczerinden nas\u0131l i\u015fledi\u011fini g\u00f6rmek konuyu daha iyi peki\u015ftirecektir. Diyelim ki, bir &#8220;Proje Y\u00f6netim Sistemi&#8221; (PMS) uygulaman\u0131z var ve bu uygulaman\u0131n kullan\u0131c\u0131lar\u0131n Google Takvim&#8217;lerini senkronize etmesine izin vermek istiyorsunuz. Bu entegrasyon, kullan\u0131c\u0131lar\u0131n Google Takvim&#8217;indeki etkinlikleri PMS&#8217;de g\u00f6rmesini ve PMS&#8217;den yeni etkinlikler olu\u015fturmas\u0131n\u0131 sa\u011flayacak.<\/p>\n<p>\u0130\u015fte ad\u0131m ad\u0131m bu entegrasyonun Yetkilendirme Kodu Ak\u0131\u015f\u0131 (PKCE ile) kullanarak nas\u0131l ger\u00e7ekle\u015fece\u011fi:<\/p>\n<ol>\n<li><strong>PMS&#8217;nin Google&#8217;a Kayd\u0131:<\/strong> \u00d6ncelikle, PMS uygulaman\u0131z\u0131n Google API Konsolu&#8217;nda bir &#8220;istemci&#8221; olarak kaydedilmesi gerekir. Bu kay\u0131t i\u015flemi s\u0131ras\u0131nda, Google, uygulaman\u0131za bir <code>client_id<\/code> ve bir <code>client_secret<\/code> (arka u\u00e7 kullanan web uygulamalar\u0131 i\u00e7in) atar. Ayr\u0131ca, Google&#8217;a uygulaman\u0131z\u0131n kullan\u0131c\u0131lar\u0131 yetkilendirme sonras\u0131 geri y\u00f6nlendirece\u011fi <code>redirect_uri<\/code>&#8216;yi (\u00f6rne\u011fin, <code>https:\/\/pms.com\/google\/callback<\/code>) bildirmeniz gerekir.<\/li>\n<li><strong>Kullan\u0131c\u0131 Entegrasyonu Ba\u015flat\u0131r:<\/strong> Bir kullan\u0131c\u0131 PMS uygulamas\u0131nda oturum a\u00e7ar ve &#8220;Google Takvimini Ba\u011fla&#8221; d\u00fc\u011fmesine t\u0131klar.<\/li>\n<li><strong>PMS, Yetkilendirme \u0130ste\u011fi Olu\u015fturur:<\/strong> PMS uygulamas\u0131, kullan\u0131c\u0131y\u0131 Google&#8217;\u0131n yetkilendirme sunucusuna y\u00f6nlendiren bir URL olu\u015fturur. Bu URL \u015funlar\u0131 i\u00e7erir:\n<ul>\n<li><code>client_id<\/code>: PMS&#8217;nin Google&#8217;daki kimli\u011fi.<\/li>\n<li><code>redirect_uri<\/code>: Google&#8217;\u0131n kullan\u0131c\u0131y\u0131 yetkilendirme sonras\u0131 nereye y\u00f6nlendirece\u011fi.<\/li>\n<li><code>scope<\/code>: PMS&#8217;nin Google Takvim&#8217;e hangi izinlerle eri\u015fmek istedi\u011fi (\u00f6rne\u011fin, <code>https:\/\/www.googleapis.com\/auth\/calendar<\/code>).<\/li>\n<li><code>state<\/code>: CSRF korumas\u0131 i\u00e7in rastgele olu\u015fturulmu\u015f bir de\u011fer.<\/li>\n<li><code>code_challenge<\/code> ve <code>code_challenge_method<\/code>: PKCE i\u00e7in olu\u015fturulan de\u011ferler.<\/li>\n<\/ul>\n<p>        Kullan\u0131c\u0131 bu URL&#8217;ye y\u00f6nlendirilir.<\/li>\n<li><strong>Kullan\u0131c\u0131 Google&#8217;da Kimlik Do\u011frulamas\u0131 Yapar ve Onay Verir:<\/strong> Kullan\u0131c\u0131, Google&#8217;\u0131n oturum a\u00e7ma sayfas\u0131nda Google hesab\u0131yla giri\u015f yapar (e\u011fer oturum a\u00e7\u0131k de\u011filse). Ard\u0131ndan Google, PMS uygulamas\u0131n\u0131n talep etti\u011fi izinleri (Takvim&#8217;e eri\u015fim) kullan\u0131c\u0131ya g\u00f6sterir ve onaylamas\u0131n\u0131 ister.<\/li>\n<li><strong>Google, Yetkilendirme Kodu ile Geri Y\u00f6nlendirir:<\/strong> Kullan\u0131c\u0131 izinleri onaylad\u0131ktan sonra, Google yetkilendirme sunucusu kullan\u0131c\u0131y\u0131 PMS&#8217;nin \u00f6nceden kay\u0131tl\u0131 <code>redirect_uri<\/code>&#8216;sine (<code>https:\/\/pms.com\/google\/callback<\/code>) bir yetkilendirme kodu (<code>code<\/code>) ve orijinal <code>state<\/code> de\u011feri ile birlikte geri y\u00f6nlendirir.<\/li>\n<li><strong>PMS, Eri\u015fim Token\u0131 Talep Eder:<\/strong> PMS&#8217;nin arka u\u00e7 sunucusu, ald\u0131\u011f\u0131 yetkilendirme kodunu, kendi <code>client_id<\/code>&#8216;sini, <code>client_secret<\/code>&#8216;\u0131n\u0131, <code>redirect_uri<\/code>&#8216;sini ve PKCE i\u00e7in <code>code_verifier<\/code>&#8216;\u0131 kullanarak Google&#8217;\u0131n token u\u00e7 noktas\u0131na g\u00fcvenli bir POST iste\u011fi g\u00f6nderir.<\/li>\n<li><strong>Google, Eri\u015fim Token\u0131 Verir:<\/strong> Google&#8217;\u0131n yetkilendirme sunucusu, t\u00fcm bilgileri do\u011frulad\u0131ktan sonra PMS&#8217;ye bir eri\u015fim token\u0131, bir yenileme token\u0131 ve token\u0131n ge\u00e7erlilik s\u00fcresi ile yan\u0131t verir.<\/li>\n<li><strong>PMS, Tokenlar\u0131 Saklar ve Kullan\u0131r:<\/strong> PMS&#8217;nin arka ucu, eri\u015fim token\u0131n\u0131 ve yenileme token\u0131n\u0131 kullan\u0131c\u0131n\u0131n hesab\u0131yla ili\u015fkilendirerek g\u00fcvenli bir \u015fekilde veritaban\u0131nda saklar. Art\u0131k PMS, bu eri\u015fim token\u0131n\u0131 kullanarak kullan\u0131c\u0131n\u0131n Google Takvim API&#8217;sine \u00e7a\u011fr\u0131lar yapabilir (\u00f6rne\u011fin, etkinlikleri okuyabilir, yeni etkinlikler olu\u015fturabilir). Eri\u015fim token\u0131n\u0131n s\u00fcresi doldu\u011funda, PMS yenileme token\u0131n\u0131 kullanarak Google&#8217;dan yeni bir eri\u015fim token\u0131 alabilir.<\/li>\n<\/ol>\n<p>Bu senaryo, kullan\u0131c\u0131n\u0131n Google \u015fifresini asla PMS uygulamas\u0131yla payla\u015fmak zorunda kalmadan, PMS&#8217;nin Google Takvim&#8217;e g\u00fcvenli ve kontroll\u00fc bir \u015fekilde eri\u015fmesini sa\u011flar. Bu, hem kullan\u0131c\u0131 deneyimini iyile\u015ftirir hem de hassas bilgilerin g\u00fcvenli\u011fini garanti alt\u0131na al\u0131r.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>OAuth 2, modern web ve mobil uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131n\u0131 sa\u011flayan g\u00fc\u00e7l\u00fc ve esnek bir yetkilendirme \u00e7er\u00e7evesidir. Kullan\u0131c\u0131lar\u0131n kimlik bilgilerini do\u011frudan \u00fc\u00e7\u00fcnc\u00fc taraf uygulamalarla payla\u015fma ihtiyac\u0131n\u0131 ortadan kald\u0131rarak, hem veri g\u00fcvenli\u011fini art\u0131r\u0131r hem de kullan\u0131c\u0131ya kendi verileri \u00fczerindeki kontrol\u00fc geri verir. Do\u011fru yetkilendirme ak\u0131\u015f\u0131n\u0131 se\u00e7mek, kapsamlar\u0131 dikkatli bir \u015fekilde y\u00f6netmek ve PKCE gibi g\u00fcvenlik uzant\u0131lar\u0131n\u0131 kullanmak, sa\u011flam ve g\u00fcvenli bir OAuth 2 uygulamas\u0131n\u0131n temelini olu\u015fturur. Bu rehberde ele ald\u0131\u011f\u0131m\u0131z temel kavramlar, ak\u0131\u015flar ve g\u00fcvenlik pratikleri, OAuth 2&#8217;yi s\u0131f\u0131rdan anlaman\u0131za ve uygulamalar\u0131n\u0131zda g\u00fcvenle kullanman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p>Unutmay\u0131n ki OAuth 2 s\u00fcrekli geli\u015fen bir standartt\u0131r ve en iyi pratikler zamanla de\u011fi\u015febilir. Bu nedenle, g\u00fcncel g\u00fcvenlik tavsiyelerini takip etmek ve uygulaman\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmek her zaman \u00f6nemlidir. OAuth 2, dijital ekosistemde g\u00fcvenli ve sorunsuz entegrasyonlar\u0131n anahtar\u0131d\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<h3>OAuth 2 bir kimlik do\u011frulama protokol\u00fc m\u00fcd\u00fcr?<\/h3>\n<p>Hay\u0131r, OAuth 2 bir yetkilendirme protokol\u00fcd\u00fcr. Temel amac\u0131, bir uygulaman\u0131n (istemci) ba\u015fka bir servisteki (kaynak sunucusu) belirli kaynaklara kullan\u0131c\u0131n\u0131n onay\u0131yla eri\u015fim yetkisi almas\u0131n\u0131 sa\u011flamakt\u0131r. Kimlik do\u011frulama (kullan\u0131c\u0131n\u0131n kim oldu\u011funu kan\u0131tlama) s\u00fcrecini do\u011frudan y\u00f6netmez. Ancak, genellikle OpenID Connect (OIDC) gibi kimlik do\u011frulama katmanlar\u0131 OAuth 2 \u00fczerine in\u015fa edilerek hem yetkilendirme hem de kimlik do\u011frulama sa\u011flan\u0131r.<\/p>\n<h3><code>state<\/code> parametresi ne i\u015fe yarar?<\/h3>\n<p><code>state<\/code> parametresi, \u00f6zellikle Yetkilendirme Kodu Ak\u0131\u015f\u0131&#8217;nda CSRF (Cross-Site Request Forgery) sald\u0131r\u0131lar\u0131n\u0131 \u00f6nlemek i\u00e7in kullan\u0131l\u0131r. \u0130stemci uygulama, yetkilendirme iste\u011fi g\u00f6nderirken rastgele ve tahmin edilemez bir <code>state<\/code> de\u011feri olu\u015fturur ve bunu kendi oturumunda saklar. Yetkilendirme sunucusu, kullan\u0131c\u0131y\u0131 geri y\u00f6nlendirdi\u011finde bu <code>state<\/code> de\u011ferini de geri g\u00f6nderir. \u0130stemci, gelen <code>state<\/code> de\u011ferini kendi saklad\u0131\u011f\u0131 de\u011ferle kar\u015f\u0131la\u015ft\u0131rarak, iste\u011fin orijinal kendisi taraf\u0131ndan ba\u015flat\u0131ld\u0131\u011f\u0131ndan emin olur ve k\u00f6t\u00fc niyetli bir sald\u0131rgan\u0131n sahte bir istek enjekte etmesini engeller.<\/p>\n<h3>Eri\u015fim token\u0131 ve yenileme token\u0131 aras\u0131ndaki fark nedir?<\/h3>\n<p><strong>Eri\u015fim token\u0131 (Access Token)<\/strong>, istemcinin kaynak sunucusundaki korumal\u0131 kaynaklara eri\u015fmek i\u00e7in kulland\u0131\u011f\u0131 k\u0131sa \u00f6m\u00fcrl\u00fc bir kimlik bilgisidir. Genellikle JWT (JSON Web Token) format\u0131nda olup belirli bir s\u00fcre (\u00f6rne\u011fin 1 saat) ge\u00e7erlidir. S\u00fcresi doldu\u011funda yeni bir token al\u0131nmas\u0131 gerekir. <strong>Yenileme token\u0131 (Refresh Token)<\/strong> ise daha uzun \u00f6m\u00fcrl\u00fc bir kimlik bilgisidir ve s\u00fcresi dolmu\u015f bir eri\u015fim token\u0131 yerine yeni bir eri\u015fim token\u0131 almak i\u00e7in kullan\u0131l\u0131r. Bu ayr\u0131m, eri\u015fim token\u0131n\u0131n \u00e7al\u0131nmas\u0131 durumunda bile sald\u0131rgan\u0131n s\u0131n\u0131rl\u0131 bir s\u00fcreye sahip olmas\u0131n\u0131 ve yenileme token\u0131 olmadan s\u00fcrekli eri\u015fim sa\u011flayamamas\u0131n\u0131 sa\u011flar, bu da g\u00fcvenli\u011fi art\u0131r\u0131r.<\/p>\n<h3>PKCE neden \u00f6nemlidir?<\/h3>\n<p>PKCE (Proof Key for Code Exchange), \u00f6zellikle genel istemciler (native mobil uygulamalar ve tek sayfa uygulamalar\u0131 &#8211; SPA&#8217;lar) i\u00e7in Yetkilendirme Kodu Ak\u0131\u015f\u0131&#8217;n\u0131n g\u00fcvenli\u011fini art\u0131ran bir uzant\u0131d\u0131r. Genel istemciler, <code>client_secret<\/code> gibi gizli kimlik bilgilerini g\u00fcvenli bir \u015fekilde saklayamazlar. PKCE, yetkilendirme kodu \u00e7al\u0131nsa bile, k\u00f6t\u00fc niyetli bir uygulaman\u0131n bu kodu kullanarak eri\u015fim token\u0131 almas\u0131n\u0131 engeller. Bunu, yetkilendirme iste\u011fi s\u0131ras\u0131nda g\u00f6nderilen bir &#8220;code challenge&#8221; ve token de\u011fi\u015fimi s\u0131ras\u0131nda g\u00f6nderilen &#8220;code verifier&#8221; ile sa\u011flar, bu da istemcinin kimli\u011fini do\u011frulamak i\u00e7in ek bir kan\u0131t katman\u0131 ekler.<\/p>\n<h3>Hangi OAuth 2 ak\u0131\u015f\u0131n\u0131 kullanmal\u0131y\u0131m?<\/h3>\n<p>\u00c7o\u011fu modern web uygulamas\u0131, mobil uygulama ve tek sayfa uygulamas\u0131 (SPA) i\u00e7in <strong>Yetkilendirme Kodu Ak\u0131\u015f\u0131 (Authorization Code Grant)<\/strong>, \u00f6zellikle <strong>PKCE ile birlikte<\/strong>, en g\u00fcvenli ve \u00f6nerilen y\u00f6ntemdir. Uygulamadan uygulamaya veya arka plan servisleri aras\u0131ndaki ileti\u015fim i\u00e7in ise <strong>\u0130stemci Kimlik Bilgileri Ak\u0131\u015f\u0131 (Client Credentials Grant)<\/strong> uygundur. Implicit Ak\u0131\u015f\u0131 ve Parola Ak\u0131\u015f\u0131 g\u00fcvenlik zafiyetleri nedeniyle art\u0131k \u00f6nerilmemektedir ve kullan\u0131lmamal\u0131d\u0131r.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"OAuth 2&#8217;ye Giri\u015f: G\u00fcvenli Yetkilendirme Rehberi Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38280","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?<\/title>\n<meta name=\"description\" content=\"Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131 verilerini korumas\u0131 hi\u00e7 bu kadar kritik olmam\u0131\u015ft\u0131. Peki, bir uygulaman\u0131n ba\u015fka bir uygulaman\u0131n kaynaklar\u0131na, kullan\u0131c\u0131 \u015fifresini bilmeden, g\u00fcvenli bir \u015fekilde nas\u0131l eri\u015fti\u011fini merak ettiniz mi? \u0130\u015fte bu noktada OAuth 2 devreye giriyor. Bu kapsaml\u0131 rehberde, OAuth 2&#039;nin temel prensiplerinden ileri d\u00fczey g\u00fcvenlik pratiklerine kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kod \u00f6rnekleriyle konuyu derinlemesine kavrayacaks\u0131n\u0131z.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?\" \/>\n<meta property=\"og:description\" content=\"Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131 verilerini korumas\u0131 hi\u00e7 bu kadar kritik olmam\u0131\u015ft\u0131. Peki, bir uygulaman\u0131n ba\u015fka bir uygulaman\u0131n kaynaklar\u0131na, kullan\u0131c\u0131 \u015fifresini bilmeden, g\u00fcvenli bir \u015fekilde nas\u0131l eri\u015fti\u011fini merak ettiniz mi? \u0130\u015fte bu noktada OAuth 2 devreye giriyor. Bu kapsaml\u0131 rehberde, OAuth 2&#039;nin temel prensiplerinden ileri d\u00fczey g\u00fcvenlik pratiklerine kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kod \u00f6rnekleriyle konuyu derinlemesine kavrayacaks\u0131n\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-27T13:23:56+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?\",\"datePublished\":\"2026-01-27T13:23:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/\"},\"wordCount\":4148,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/\",\"name\":\"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-27T13:23:56+00:00\",\"description\":\"Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131 verilerini korumas\u0131 hi\u00e7 bu kadar kritik olmam\u0131\u015ft\u0131. Peki, bir uygulaman\u0131n ba\u015fka bir uygulaman\u0131n kaynaklar\u0131na, kullan\u0131c\u0131 \u015fifresini bilmeden, g\u00fcvenli bir \u015fekilde nas\u0131l eri\u015fti\u011fini merak ettiniz mi? \u0130\u015fte bu noktada OAuth 2 devreye giriyor. Bu kapsaml\u0131 rehberde, OAuth 2'nin temel prensiplerinden ileri d\u00fczey g\u00fcvenlik pratiklerine kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kod \u00f6rnekleriyle konuyu derinlemesine kavrayacaks\u0131n\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?","description":"Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131 verilerini korumas\u0131 hi\u00e7 bu kadar kritik olmam\u0131\u015ft\u0131. Peki, bir uygulaman\u0131n ba\u015fka bir uygulaman\u0131n kaynaklar\u0131na, kullan\u0131c\u0131 \u015fifresini bilmeden, g\u00fcvenli bir \u015fekilde nas\u0131l eri\u015fti\u011fini merak ettiniz mi? \u0130\u015fte bu noktada OAuth 2 devreye giriyor. Bu kapsaml\u0131 rehberde, OAuth 2'nin temel prensiplerinden ileri d\u00fczey g\u00fcvenlik pratiklerine kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kod \u00f6rnekleriyle konuyu derinlemesine kavrayacaks\u0131n\u0131z.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/","og_locale":"tr_TR","og_type":"article","og_title":"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?","og_description":"Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131 verilerini korumas\u0131 hi\u00e7 bu kadar kritik olmam\u0131\u015ft\u0131. Peki, bir uygulaman\u0131n ba\u015fka bir uygulaman\u0131n kaynaklar\u0131na, kullan\u0131c\u0131 \u015fifresini bilmeden, g\u00fcvenli bir \u015fekilde nas\u0131l eri\u015fti\u011fini merak ettiniz mi? \u0130\u015fte bu noktada OAuth 2 devreye giriyor. Bu kapsaml\u0131 rehberde, OAuth 2'nin temel prensiplerinden ileri d\u00fczey g\u00fcvenlik pratiklerine kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kod \u00f6rnekleriyle konuyu derinlemesine kavrayacaks\u0131n\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-27T13:23:56+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?","datePublished":"2026-01-27T13:23:56+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/"},"wordCount":4148,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/","url":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/","name":"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-27T13:23:56+00:00","description":"Modern dijital d\u00fcnyada, uygulamalar\u0131n birbirleriyle g\u00fcvenli bir \u015fekilde etkile\u015fim kurmas\u0131 ve kullan\u0131c\u0131 verilerini korumas\u0131 hi\u00e7 bu kadar kritik olmam\u0131\u015ft\u0131. Peki, bir uygulaman\u0131n ba\u015fka bir uygulaman\u0131n kaynaklar\u0131na, kullan\u0131c\u0131 \u015fifresini bilmeden, g\u00fcvenli bir \u015fekilde nas\u0131l eri\u015fti\u011fini merak ettiniz mi? \u0130\u015fte bu noktada OAuth 2 devreye giriyor. Bu kapsaml\u0131 rehberde, OAuth 2'nin temel prensiplerinden ileri d\u00fczey g\u00fcvenlik pratiklerine kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve kod \u00f6rnekleriyle konuyu derinlemesine kavrayacaks\u0131n\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/oauth-2-nedir-ve-neden-hayatimizda-onemli-bir-yer-tutar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"OAuth 2 Nedir ve Neden Hayat\u0131m\u0131zda \u00d6nemli Bir Yer Tutar?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38280"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38280\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}