{"id":2882,"date":"2024-11-04T02:15:17","date_gmt":"2024-11-03T23:15:17","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/"},"modified":"2024-11-04T02:15:17","modified_gmt":"2024-11-03T23:15:17","slug":"node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/","title":{"rendered":"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m"},"content":{"rendered":"<p>Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m<\/p>\n<p>Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token) kullanman\u0131n en yayg\u0131n ve pop\u00fcler y\u00f6ntemlerinden biri oldu\u011funu biliyor muydunuz? JWT, kullan\u0131c\u0131n\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde iletmek ve do\u011frulamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<p>Bu makalede, Node.js uygulamalar\u0131n\u0131zda JWT kimlik do\u011frulamas\u0131 uygulamak i\u00e7in ad\u0131m ad\u0131m bir rehber sunaca\u011f\u0131m.  JWT&#8217;nin temellerini, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve kendi uygulamalar\u0131n\u0131zda nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m g\u00f6sterece\u011fim. Haz\u0131r m\u0131s\u0131n\u0131z? Haydi ba\u015flayal\u0131m!<\/p>\n<h2>JWT Nedir?<\/h2>\n<p>JWT (JSON Web Token) k\u0131saca, kullan\u0131c\u0131n\u0131n kimlik bilgilerini ve ek bilgileri g\u00fcvenli bir \u015fekilde temsil eden bir standartt\u0131r. Bir JWT, \u00fc\u00e7 b\u00f6l\u00fcmden olu\u015fur:<\/p>\n<ul>\n<li><strong>Ba\u015fl\u0131k (Header):<\/strong> JWT t\u00fcr\u00fcn\u00fc (JWT) ve kullan\u0131lan algoritmay\u0131 belirtir.<\/li>\n<li><strong>Y\u00fck (Payload):<\/strong> Kullan\u0131c\u0131 hakk\u0131nda bilgi i\u00e7eren, \u015fifrelenmemi\u015f JSON verileridir. (\u00d6rne\u011fin, kullan\u0131c\u0131 ad\u0131, e-posta adresi, rol, vb.)<\/li>\n<li><strong>\u0130mza (Signature):<\/strong> Ba\u015fl\u0131k ve y\u00fck\u00fc \u015fifreleyerek JWT&#8217;nin de\u011fi\u015ftirilmedi\u011fini garanti eder. <\/li>\n<\/ul>\n<p>JWT&#8217;ler, uygulamalar aras\u0131nda verileri g\u00fcvenli bir \u015fekilde payla\u015fmak i\u00e7in kullan\u0131labilir. Bunlar, kullan\u0131c\u0131 oturum a\u00e7ma i\u015flemleri, yetkilendirme kontrol\u00fc ve API eri\u015fimi gibi bir\u00e7ok kullan\u0131m senaryosunda kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h2>Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131<\/h2>\n<p>\u015eimdi Node.js uygulamalar\u0131nda JWT kimlik do\u011frulamas\u0131 uygulamak i\u00e7in 9 ad\u0131ma daha yak\u0131ndan bakal\u0131m.<\/p>\n<h3>1. Proje Kurulumu<\/h3>\n<p>Yeni bir Node.js projesi olu\u015fturun ve gerekli paketleri y\u00fckleyin:<\/p>\n<p>&#8220;`bash<br \/>\nmkdir my-jwt-app<br \/>\ncd my-jwt-app<br \/>\nnpm init -y<br \/>\nnpm install express jsonwebtoken bcryptjs cors<br \/>\n&#8220;`<\/p>\n<p>Bu komutlar: <\/p>\n<ul>\n<li><strong>express:<\/strong> Web uygulamas\u0131 olu\u015fturmak i\u00e7in bir \u00e7er\u00e7eve.<\/li>\n<li><strong>jsonwebtoken:<\/strong> JWT&#8217;ler olu\u015fturmak ve do\u011frulamak i\u00e7in bir k\u00fct\u00fcphane.<\/li>\n<li><strong>bcryptjs:<\/strong> Parolalar\u0131 g\u00fcvenli bir \u015fekilde \u015fifrelemek i\u00e7in kullan\u0131lan bir k\u00fct\u00fcphane.<\/li>\n<li><strong>cors:<\/strong> Farkl\u0131 k\u00f6kenlerden gelen isteklere izin vermek i\u00e7in bir middleware.<\/li>\n<\/ul>\n<h3>2. Kullan\u0131c\u0131 Modeli<\/h3>\n<p>Kullan\u0131c\u0131 verilerini depolamak i\u00e7in bir model olu\u015fturun (\u00d6rne\u011fin, &#8216;user.js&#8217;):<\/p>\n<p>&#8220;`javascript<br \/>\nconst mongoose = require(&#8216;mongoose&#8217;);<br \/>\nconst Schema = mongoose.Schema;<\/p>\n<p>const userSchema = new Schema({<br \/>\n  username: {<br \/>\n    type: String,<br \/>\n    required: true,<br \/>\n    unique: true<br \/>\n  },<br \/>\n  password: {<br \/>\n    type: String,<br \/>\n    required: true<br \/>\n  }<br \/>\n});<\/p>\n<p>module.exports = mongoose.model(&#8216;User&#8217;, userSchema);<br \/>\n&#8220;`<\/p>\n<h3>3. Veritaban\u0131 Ba\u011flant\u0131s\u0131<\/h3>\n<p>Uygulaman\u0131z\u0131n kullanaca\u011f\u0131 veritaban\u0131na (MongoDB gibi) ba\u011flan\u0131n.\n<\/p>\n<p>&#8220;`javascript<br \/>\nconst mongoose = require(&#8216;mongoose&#8217;);<br \/>\nconst mongoURI = &#8216;mongodb:\/\/localhost:27017\/my-jwt-app&#8217;; \/\/ Veritaban\u0131 ba\u011flant\u0131 bilgileri<\/p>\n<p>mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })<br \/>\n  .then(() => console.log(&#8216;MongoDB ba\u011flant\u0131s\u0131 ba\u015far\u0131l\u0131.&#8217;))<br \/>\n  .catch(err => console.error(&#8216;MongoDB ba\u011flant\u0131 hatas\u0131:&#8217;, err));<br \/>\n&#8220;`<\/p>\n<h3>4. Kay\u0131t \u0130\u015flemi<\/h3>\n<p>Yeni kullan\u0131c\u0131lar\u0131 veritaban\u0131na eklemek i\u00e7in bir kay\u0131t (sign-up) rotas\u0131 olu\u015fturun:<\/p>\n<p>&#8220;`javascript<br \/>\nconst express = require(&#8216;express&#8217;);<br \/>\nconst router = express.Router();<br \/>\nconst User = require(&#8216;..\/models\/user&#8217;);<br \/>\nconst bcryptjs = require(&#8216;bcryptjs&#8217;);<\/p>\n<p>router.post(&#8216;\/signup&#8217;, async (req, res) => {<br \/>\n  const { username, password } = req.body;<\/p>\n<p>  try {<br \/>\n    \/\/ Kullan\u0131c\u0131 ad\u0131 zaten var m\u0131 kontrol edin<br \/>\n    const existingUser = await User.findOne({ username });<br \/>\n    if (existingUser) {<br \/>\n      return res.status(400).json({ message: &#8216;Kullan\u0131c\u0131 ad\u0131 zaten kullan\u0131l\u0131yor.&#8217; });<br \/>\n    }<\/p>\n<p>    \/\/ Parola \u015fifreleyin<br \/>\n    const hashedPassword = await bcryptjs.hash(password, 10);<\/p>\n<p>    \/\/ Yeni kullan\u0131c\u0131y\u0131 veritaban\u0131na kaydedin<br \/>\n    const newUser = new User({ username, password: hashedPassword });<br \/>\n    await newUser.save();<\/p>\n<p>    res.status(201).json({ message: &#8216;Kullan\u0131c\u0131 ba\u015far\u0131yla kaydedildi.&#8217; });<br \/>\n  } catch (err) {<br \/>\n    console.error(err);<br \/>\n    res.status(500).json({ message: &#8216;Bir hata olu\u015ftu.&#8217; });<br \/>\n  }<br \/>\n});<\/p>\n<p>module.exports = router;<br \/>\n&#8220;`<\/p>\n<h3>5. Oturum A\u00e7ma \u0130\u015flemi<\/h3>\n<p>Kullan\u0131c\u0131lar\u0131 kimlik do\u011frulamak i\u00e7in bir oturum a\u00e7ma (sign-in) rotas\u0131 olu\u015fturun:<\/p>\n<p>&#8220;`javascript<br \/>\nconst express = require(&#8216;express&#8217;);<br \/>\nconst router = express.Router();<br \/>\nconst User = require(&#8216;..\/models\/user&#8217;);<br \/>\nconst bcryptjs = require(&#8216;bcryptjs&#8217;);<br \/>\nconst jwt = require(&#8216;jsonwebtoken&#8217;);<\/p>\n<p>router.post(&#8216;\/signin&#8217;, async (req, res) => {<br \/>\n  const { username, password } = req.body;<\/p>\n<p>  try {<br \/>\n    const user = await User.findOne({ username });<br \/>\n    if (!user) {<br \/>\n      return res.status(401).json({ message: &#8216;Ge\u00e7ersiz kullan\u0131c\u0131 ad\u0131 veya parola.&#8217; });<br \/>\n    }<\/p>\n<p>    \/\/ Parola do\u011frulamas\u0131n\u0131 yap\u0131n<br \/>\n    const isValidPassword = await bcryptjs.compare(password, user.password);<br \/>\n    if (!isValidPassword) {<br \/>\n      return res.status(401).json({ message: &#8216;Ge\u00e7ersiz kullan\u0131c\u0131 ad\u0131 veya parola.&#8217; });<br \/>\n    }<\/p>\n<p>    \/\/ JWT olu\u015fturun<br \/>\n    const token = jwt.sign({ userId: user._id }, &#8216;secret-key&#8217;, { expiresIn: &#8216;1h&#8217; });<\/p>\n<p>    res.status(200).json({ token, message: &#8216;Oturum a\u00e7ma ba\u015far\u0131l\u0131.&#8217; });<br \/>\n  } catch (err) {<br \/>\n    console.error(err);<br \/>\n    res.status(500).json({ message: &#8216;Bir hata olu\u015ftu.&#8217; });<br \/>\n  }<br \/>\n});<\/p>\n<p>module.exports = router;<br \/>\n&#8220;`<\/p>\n<h3>6. JWT Middleware<\/h3>\n<p>JWT&#8217;yi do\u011frulamak i\u00e7in bir middleware olu\u015fturun:<\/p>\n<p>&#8220;`javascript<br \/>\nconst express = require(&#8216;express&#8217;);<br \/>\nconst jwt = require(&#8216;jsonwebtoken&#8217;);<\/p>\n<p>const authMiddleware = (req, res, next) => {<br \/>\n  const token = req.headers.authorization &#038;&#038; req.headers.authorization.split(&#8216; &#8216;)[1];<\/p>\n<p>  if (!token) {<br \/>\n    return res.status(401).json({ message: &#8216;Ge\u00e7erli bir JWT tokeni sa\u011flamal\u0131s\u0131n\u0131z.&#8217; });<br \/>\n  }<\/p>\n<p>  try {<br \/>\n    const decoded = jwt.verify(token, &#8216;secret-key&#8217;);<br \/>\n    req.user = decoded;<br \/>\n    next();<br \/>\n  } catch (err) {<br \/>\n    console.error(err);<br \/>\n    res.status(401).json({ message: &#8216;Ge\u00e7ersiz JWT tokeni.&#8217; });<br \/>\n  }<br \/>\n};<\/p>\n<p>module.exports = authMiddleware;<br \/>\n&#8220;`<\/p>\n<h3>7. Korunan Rotalar<\/h3>\n<p>JWT middleware&#8217;ini kullanarak korunan rotalar olu\u015fturun:<\/p>\n<p>&#8220;`javascript<br \/>\nconst express = require(&#8216;express&#8217;);<br \/>\nconst router = express.Router();<br \/>\nconst authMiddleware = require(&#8216;..\/middleware\/auth&#8217;);<\/p>\n<p>router.get(&#8216;\/protected&#8217;, authMiddleware, (req, res) => {<br \/>\n  res.status(200).json({ message: &#8216;Bu bir korunan rota.&#8217; });<br \/>\n});<\/p>\n<p>module.exports = router;<br \/>\n&#8220;`<\/p>\n<h3>8. Uygulama Ba\u015flang\u0131\u00e7<\/h3>\n<p>Uygulama sunucunuzu ba\u015flat\u0131n:<\/p>\n<p>&#8220;`javascript<br \/>\nconst express = require(&#8216;express&#8217;);<br \/>\nconst cors = require(&#8216;cors&#8217;);<br \/>\nconst signupRouter = require(&#8216;.\/routes\/signup&#8217;);<br \/>\nconst signinRouter = require(&#8216;.\/routes\/signin&#8217;);<br \/>\nconst protectedRouter = require(&#8216;.\/routes\/protected&#8217;);<\/p>\n<p>const app = express();<br \/>\napp.use(cors());<br \/>\napp.use(express.json());<\/p>\n<p>app.use(&#8216;\/api\/v1\/auth&#8217;, signupRouter);<br \/>\napp.use(&#8216;\/api\/v1\/auth&#8217;, signinRouter);<br \/>\napp.use(&#8216;\/api\/v1\/protected&#8217;, protectedRouter);<\/p>\n<p>app.listen(3000, () => {<br \/>\n  console.log(&#8216;Sunucu 3000 portunda \u00e7al\u0131\u015f\u0131yor.&#8217;);<br \/>\n});<br \/>\n&#8220;`<\/p>\n<h3>9. G\u00fcvenlik Uygulamalar\u0131<\/h3>\n<p>JWT g\u00fcvenli\u011fi i\u00e7in a\u015fa\u011f\u0131daki hususlara dikkat etmek \u00f6nemlidir:<\/p>\n<ul>\n<li><strong>G\u00fc\u00e7l\u00fc bir gizli anahtar kullan\u0131n:<\/strong> JWT&#8217;leri \u015fifrelemek i\u00e7in uzun ve rastgele bir gizli anahtar kullan\u0131n. Bu anahtar\u0131 asla do\u011frudan kodunuzda saklamay\u0131n, g\u00fcvenli bir ortamda saklay\u0131n.<\/li>\n<li><strong>JWT&#8217;leri do\u011fru bir \u015fekilde saklay\u0131n:<\/strong> JWT&#8217;leri istemci taraf\u0131nda (taray\u0131c\u0131) saklamak yerine, istemcinin JWT&#8217;yi sunucuya g\u00f6ndermesini sa\u011flayacak bir g\u00fcvenli mekanizma kullan\u0131n. JWT&#8217;leri g\u00fcvenli \u00e7erezlerde veya yerel depolama alan\u0131nda saklayabilirsiniz.<\/li>\n<li><strong>JWT&#8217;lere son kullanma tarihi ekleyin:<\/strong> JWT&#8217;lerin ge\u00e7erlili\u011fini s\u0131n\u0131rlamak i\u00e7in son kullanma tarihi ayarlay\u0131n. Bu, yetkisiz eri\u015fimi \u00f6nlemeye yard\u0131mc\u0131 olur.<\/li>\n<li><strong>HTTP Only \u00e7erezleri kullan\u0131n:<\/strong> JWT&#8217;leri \u00e7erezlerde sakl\u0131yorsan\u0131z, HTTP Only \u00e7erezleri kullan\u0131n. Bu \u00e7erezlere JavaScript taraf\u0131ndan eri\u015filmesini engeller.<\/li>\n<li><strong>JWT&#8217;leri \u015fifreleyin:<\/strong>  \u00d6zellikle hassas bilgiler i\u00e7eriyorsa JWT&#8217;leri \u015fifreleyin. JWT&#8217;leri \u015fifrelemek, yetkisiz ki\u015filerin i\u00e7eri\u011fini okumas\u0131n\u0131 \u00f6nler.<\/li>\n<\/ul>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, Node.js uygulamalar\u0131n\u0131zda JWT kimlik do\u011frulamas\u0131 uygulama ad\u0131mlar\u0131n\u0131 inceledik. JWT g\u00fcvenli\u011fi i\u00e7in \u00f6nemli ipu\u00e7lar\u0131n\u0131 da ele ald\u0131k. JWT, g\u00fcvenli ve etkili bir kimlik do\u011frulama mekanizmas\u0131d\u0131r ve Node.js uygulamalar\u0131n\u0131z\u0131 geli\u015ftirmek i\u00e7in kullanabilece\u011finiz de\u011ferli bir ara\u00e7t\u0131r.<\/p>\n<p>JWT&#8217;ler hakk\u0131nda daha fazla bilgi edinmek ve uygulaman\u0131z i\u00e7in en uygun \u015fekilde nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenmek i\u00e7in <a href=\"https:\/\/jwt.io\/\" target=\"_blank\" rel=\"noopener\">JWT.io<\/a> dok\u00fcmantasyonuna g\u00f6z atabilirsiniz. <\/p>\n<p>Umar\u0131m bu makale size JWT kimlik do\u011frulamas\u0131 hakk\u0131nda temel bir anlay\u0131\u015f kazand\u0131rm\u0131\u015ft\u0131r.  E\u011fer Node.js ve JWT hakk\u0131nda daha fazla sorunuz varsa,  <a href=\"https:\/\/fatihsoysal.com\/\" target=\"_blank\" rel=\"noopener\">fatihsoysal.com<\/a> adresinden bana ula\u015fabilirsiniz. <\/p>\n<p>#Etiketler: JWT, Node.js, Kimlik Do\u011frulamas\u0131, G\u00fcvenlik, JSON Web Token, Uygulama Geli\u015ftirme, Web Geli\u015ftirme, Fatih Soysal <\/p>\n","protected":false},"excerpt":{"rendered":"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token)&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-2882","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>Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m<\/title>\n<meta name=\"description\" content=\"Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token) kullanman\u0131n en yayg\u0131n ve pop\u00fcler y\u00f6ntemlerinden biri oldu\u011funu biliyor muydunuz? JWT, kullan\u0131c\u0131n\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde iletmek ve do\u011frulamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcmd\u00fcr.\" \/>\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\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m\" \/>\n<meta property=\"og:description\" content=\"Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token) kullanman\u0131n en yayg\u0131n ve pop\u00fcler y\u00f6ntemlerinden biri oldu\u011funu biliyor muydunuz? JWT, kullan\u0131c\u0131n\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde iletmek ve do\u011frulamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcmd\u00fcr.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-03T23:15:17+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=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m\",\"datePublished\":\"2024-11-03T23:15:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/\"},\"wordCount\":1254,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/\",\"name\":\"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2024-11-03T23:15:17+00:00\",\"description\":\"Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token) kullanman\u0131n en yayg\u0131n ve pop\u00fcler y\u00f6ntemlerinden biri oldu\u011funu biliyor muydunuz? JWT, kullan\u0131c\u0131n\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde iletmek ve do\u011frulamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcmd\u00fcr.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m\"}]},{\"@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":"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m","description":"Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token) kullanman\u0131n en yayg\u0131n ve pop\u00fcler y\u00f6ntemlerinden biri oldu\u011funu biliyor muydunuz? JWT, kullan\u0131c\u0131n\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde iletmek ve do\u011frulamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcmd\u00fcr.","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\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/","og_locale":"tr_TR","og_type":"article","og_title":"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m","og_description":"Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token) kullanman\u0131n en yayg\u0131n ve pop\u00fcler y\u00f6ntemlerinden biri oldu\u011funu biliyor muydunuz? JWT, kullan\u0131c\u0131n\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde iletmek ve do\u011frulamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcmd\u00fcr.","og_url":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2024-11-03T23:15:17+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m","datePublished":"2024-11-03T23:15:17+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/"},"wordCount":1254,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/","url":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/","name":"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2024-11-03T23:15:17+00:00","description":"Node.js uygulamalar\u0131n\u0131zda g\u00fcvenli kimlik do\u011frulamas\u0131 i\u00e7in JWT (JSON Web Token) kullanman\u0131n en yayg\u0131n ve pop\u00fcler y\u00f6ntemlerinden biri oldu\u011funu biliyor muydunuz? JWT, kullan\u0131c\u0131n\u0131n kimlik bilgilerini g\u00fcvenli bir \u015fekilde iletmek ve do\u011frulamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcmd\u00fcr.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-uygulamalarinda-jwt-kimlik-dogrulamasi-icin-9-adim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Node.js Uygulamalar\u0131nda JWT Kimlik Do\u011frulamas\u0131 \u0130\u00e7in 9 Ad\u0131m"}]},{"@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\/2882","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=2882"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/2882\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=2882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=2882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=2882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}