{"id":2857,"date":"2024-11-03T21:00:18","date_gmt":"2024-11-03T18:00:18","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/"},"modified":"2024-11-03T21:00:18","modified_gmt":"2024-11-03T18:00:18","slug":"nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/","title":{"rendered":"NestJS&#8217;de Swagger&#8217;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme"},"content":{"rendered":"<p>NestJS&#8217;de Swagger&#8217;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme<\/p>\n<p>NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam mimariye sahip bir Node.js \u00e7er\u00e7evesidir. Swagger, API&#8217;leriniz i\u00e7in etkile\u015fimli bir dok\u00fcmantasyon ve test ortam\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. JWT (JSON Web Token), API&#8217;lerinize g\u00fcvenli eri\u015fimi do\u011frulamak i\u00e7in yayg\u0131n olarak kullan\u0131lan standart bir y\u00f6ntemdir.<\/p>\n<p>Bu makalede, NestJS uygulamalar\u0131n\u0131zda Swagger&#8217;\u0131 JWT kimlik do\u011frulamas\u0131yla nas\u0131l sorunsuz bir \u015fekilde entegre edece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. B\u00f6ylece, API&#8217;leriniz i\u00e7in g\u00fcvenli ve dok\u00fcmante edilmi\u015f bir aray\u00fcz olu\u015fturabilirsiniz.<\/p>\n<h2>Gereksinimler<\/h2>\n<p>* Node.js ve npm (veya yarn)<br \/>\n* Bir NestJS projesi<\/p>\n<h2>Kurulum<\/h2>\n<p>\u00d6ncelikle, yeni bir NestJS projesi olu\u015fturun veya mevcut bir projenizi kullan\u0131n. Daha sonra, a\u015fa\u011f\u0131daki paketleri kurman\u0131z gerekecektir:<\/p>\n<p>&#8220;`bash<br \/>\nnpm install @nestjs\/platform-express @nestjs\/swagger @nestjs\/passport passport-jwt<br \/>\n&#8220;`<\/p>\n<h2>Swagger&#8217;\u0131 Kurma<\/h2>\n<p>\u0130lk olarak, `main.ts` dosyas\u0131nda Swagger&#8217;\u0131 yap\u0131land\u0131ral\u0131m:<\/p>\n<p>&#8220;`typescript<br \/>\nimport { NestFactory } from &#8216;@nestjs\/core&#8217;;<br \/>\nimport { AppModule } from &#8216;.\/app.module&#8217;;<br \/>\nimport { DocumentBuilder, SwaggerModule } from &#8216;@nestjs\/swagger&#8217;;<\/p>\n<p>async function bootstrap() {<br \/>\n  const app = await NestFactory.create(AppModule);<\/p>\n<p>  const config = new DocumentBuilder()<br \/>\n    .setTitle(&#8216;My API&#8217;)<br \/>\n    .setDescription(&#8216;API description&#8217;)<br \/>\n    .setVersion(&#8216;1.0&#8217;)<br \/>\n    .addTag(&#8216;users&#8217;)<br \/>\n    .build();<br \/>\n  const document = SwaggerModule.createDocument(app, config);<br \/>\n  SwaggerModule.setup(&#8216;api&#8217;, app, document);<\/p>\n<p>  await app.listen(3000);<br \/>\n}<br \/>\nbootstrap();<br \/>\n&#8220;`<\/p>\n<p>Bu kod blo\u011fu, Swagger&#8217;\u0131 yap\u0131land\u0131rarak API&#8217;niz i\u00e7in bir dok\u00fcmantasyon olu\u015fturur. Bu dok\u00fcmantasyon, API&#8217;nizin u\u00e7 noktalar\u0131n\u0131n listelerini, parametrelerini ve yan\u0131tlar\u0131n\u0131 i\u00e7erecektir.<\/p>\n<h2>JWT Kimlik Do\u011frulamas\u0131n\u0131 Uygulama<\/h2>\n<p>JWT kimlik do\u011frulamas\u0131 i\u00e7in `@nestjs\/passport` ve `passport-jwt` paketlerini kullanaca\u011f\u0131z. \u00d6ncelikle, `AuthModule` adl\u0131 yeni bir mod\u00fcl olu\u015fturun:<\/p>\n<p>&#8220;`typescript<br \/>\nimport { Module } from &#8216;@nestjs\/common&#8217;;<br \/>\nimport { JwtModule } from &#8216;@nestjs\/jwt&#8217;;<br \/>\nimport { PassportModule } from &#8216;@nestjs\/passport&#8217;;<br \/>\nimport { JwtStrategy } from &#8216;.\/jwt.strategy&#8217;;<br \/>\nimport { AuthService } from &#8216;.\/auth.service&#8217;;<br \/>\nimport { UsersModule } from &#8216;..\/users\/users.module&#8217;;<\/p>\n<p>@Module({<br \/>\n  imports: [<br \/>\n    UsersModule,<br \/>\n    PassportModule.register({ defaultStrategy: &#8216;jwt&#8217; }),<br \/>\n    JwtModule.register({<br \/>\n      secret: &#8216;your-secret-key&#8217;,<br \/>\n      signOptions: { expiresIn: &#8216;1h&#8217; },<br \/>\n    }),<br \/>\n  ],<br \/>\n  providers: [AuthService, JwtStrategy],<br \/>\n  exports: [AuthService, JwtModule],<br \/>\n})<br \/>\nexport class AuthModule {}<br \/>\n&#8220;`<\/p>\n<p>Bu mod\u00fcl, JWT stratejisi ve JWT kimlik do\u011frulamas\u0131 i\u00e7in gerekli olan servisleri i\u00e7erir. `secret` de\u011fi\u015fkeni, JWT&#8217;leri imzalamak ve do\u011frulamak i\u00e7in kullan\u0131lan gizli bir anahtard\u0131r.<\/p>\n<h2>JWT Stratejisini Yap\u0131land\u0131rma<\/h2>\n<p>`jwt.strategy.ts` dosyas\u0131nda JWT stratejisini tan\u0131mlayal\u0131m:<\/p>\n<p>&#8220;`typescript<br \/>\nimport { Injectable } from &#8216;@nestjs\/common&#8217;;<br \/>\nimport { PassportStrategy } from &#8216;@nestjs\/passport&#8217;;<br \/>\nimport { ExtractJwt, Strategy } from &#8216;passport-jwt&#8217;;<br \/>\nimport { ConfigService } from &#8216;@nestjs\/config&#8217;;<\/p>\n<p>@Injectable()<br \/>\nexport class JwtStrategy extends PassportStrategy(Strategy) {<br \/>\n  constructor(private configService: ConfigService) {<br \/>\n    super({<br \/>\n      jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),<br \/>\n      ignoreExpiration: false,<br \/>\n      secretOrKey: configService.get(&#8216;JWT_SECRET&#8217;),<br \/>\n    });<br \/>\n  }<\/p>\n<p>  async validate(payload: any) {<br \/>\n    return { userId: payload.sub, username: payload.username };<br \/>\n  }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Bu strateji, istekte bulunan JWT&#8217;nin ge\u00e7erlili\u011fini do\u011frulayacakt\u0131r.<\/p>\n<h2>Swagger&#8217;\u0131 JWT ile G\u00fcvenlik<\/h2>\n<p>Swagger&#8217;\u0131 JWT ile korumak i\u00e7in `@nestjs\/swagger` paketindeki `@ApiBearerAuth` dekorat\u00f6r\u00fcn\u00fc kullanaca\u011f\u0131z.<\/p>\n<p>&#8220;`typescript<br \/>\nimport { Controller, Get, UseGuards } from &#8216;@nestjs\/common&#8217;;<br \/>\nimport { AuthGuard } from &#8216;@nestjs\/passport&#8217;;<br \/>\nimport { ApiBearerAuth, ApiTags } from &#8216;@nestjs\/swagger&#8217;;<\/p>\n<p>@ApiTags(&#8216;secured&#8217;)<br \/>\n@Controller(&#8216;secured&#8217;)<br \/>\n@UseGuards(AuthGuard(&#8216;jwt&#8217;))<br \/>\n@ApiBearerAuth()<br \/>\nexport class SecuredController {<br \/>\n  @Get()<br \/>\n  getSecuredData() {<br \/>\n    return &#8216;Protected data&#8217;;<br \/>\n  }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Bu kod blo\u011fu, `SecuredController`&#8217;\u0131 JWT kimlik do\u011frulamas\u0131 gerektiren bir denetleyici olarak i\u015faretler. `@ApiBearerAuth` dekorat\u00f6r\u00fc, Swagger dok\u00fcmantasyonuna JWT kimlik do\u011frulamas\u0131 gerekti\u011fi bilgisini ekler.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, NestJS uygulamalar\u0131n\u0131zda Swagger&#8217;\u0131 JWT kimlik do\u011frulamas\u0131yla nas\u0131l sorunsuz bir \u015fekilde entegre edece\u011finizi \u00f6\u011frendiniz. Bu ad\u0131mlar\u0131 izleyerek API&#8217;leriniz i\u00e7in g\u00fcvenli ve dok\u00fcmante edilmi\u015f bir aray\u00fcz sa\u011flayabilirsiniz.<\/p>\n<h2>Ek Kaynaklar<\/h2>\n<p>* <a href=\"https:\/\/docs.nestjs.com\/security\/authentication\">NestJS Dok\u00fcmantasyonu: Kimlik Do\u011frulama<\/a><br \/>\n* <a href=\"https:\/\/swagger.io\/docs\/specification\/authentication\/\">Swagger Dok\u00fcmantasyonu: Kimlik Do\u011frulama<\/a><br \/>\n* <a href=\"https:\/\/fatihsoysal.com\">Fatih Soysal Blog<\/a> <\/p>\n<p>#Etiketler<br \/>\nNestJS, Swagger, JWT, Kimlik Do\u011frulama, API Dok\u00fcmantasyonu, API G\u00fcvenli\u011fi, PassportJS<\/p>\n","protected":false},"excerpt":{"rendered":"NestJS&#8217;de Swagger&#8217;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam&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-2857","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>NestJS&#039;de Swagger&#039;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme<\/title>\n<meta name=\"description\" content=\"NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam mimariye sahip bir Node.js \u00e7er\u00e7evesidir. Swagger, API&#039;leriniz i\u00e7in etkile\u015fimli bir dok\u00fcmantasyon ve test ortam\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. JWT (JSON Web Token), API&#039;lerinize g\u00fcvenli eri\u015fimi do\u011frulamak i\u00e7in yayg\u0131n olarak kullan\u0131lan standart bir y\u00f6ntemdir.\" \/>\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\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NestJS&#039;de Swagger&#039;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme\" \/>\n<meta property=\"og:description\" content=\"NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam mimariye sahip bir Node.js \u00e7er\u00e7evesidir. Swagger, API&#039;leriniz i\u00e7in etkile\u015fimli bir dok\u00fcmantasyon ve test ortam\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. JWT (JSON Web Token), API&#039;lerinize g\u00fcvenli eri\u015fimi do\u011frulamak i\u00e7in yayg\u0131n olarak kullan\u0131lan standart bir y\u00f6ntemdir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-03T18:00:18+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=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"NestJS&#8217;de Swagger&#8217;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme\",\"datePublished\":\"2024-11-03T18:00:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/\"},\"wordCount\":644,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/\",\"name\":\"NestJS'de Swagger'\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2024-11-03T18:00:18+00:00\",\"description\":\"NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam mimariye sahip bir Node.js \u00e7er\u00e7evesidir. Swagger, API'leriniz i\u00e7in etkile\u015fimli bir dok\u00fcmantasyon ve test ortam\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. JWT (JSON Web Token), API'lerinize g\u00fcvenli eri\u015fimi do\u011frulamak i\u00e7in yayg\u0131n olarak kullan\u0131lan standart bir y\u00f6ntemdir.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NestJS&#8217;de Swagger&#8217;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme\"}]},{\"@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":"NestJS'de Swagger'\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme","description":"NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam mimariye sahip bir Node.js \u00e7er\u00e7evesidir. Swagger, API'leriniz i\u00e7in etkile\u015fimli bir dok\u00fcmantasyon ve test ortam\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. JWT (JSON Web Token), API'lerinize g\u00fcvenli eri\u015fimi do\u011frulamak i\u00e7in yayg\u0131n olarak kullan\u0131lan standart bir y\u00f6ntemdir.","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\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/","og_locale":"tr_TR","og_type":"article","og_title":"NestJS'de Swagger'\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme","og_description":"NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam mimariye sahip bir Node.js \u00e7er\u00e7evesidir. Swagger, API'leriniz i\u00e7in etkile\u015fimli bir dok\u00fcmantasyon ve test ortam\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. JWT (JSON Web Token), API'lerinize g\u00fcvenli eri\u015fimi do\u011frulamak i\u00e7in yayg\u0131n olarak kullan\u0131lan standart bir y\u00f6ntemdir.","og_url":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2024-11-03T18:00:18+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"NestJS&#8217;de Swagger&#8217;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme","datePublished":"2024-11-03T18:00:18+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/"},"wordCount":644,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/","url":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/","name":"NestJS'de Swagger'\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2024-11-03T18:00:18+00:00","description":"NestJS, TypeScript ile yaz\u0131lm\u0131\u015f, g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve sa\u011flam mimariye sahip bir Node.js \u00e7er\u00e7evesidir. Swagger, API'leriniz i\u00e7in etkile\u015fimli bir dok\u00fcmantasyon ve test ortam\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. JWT (JSON Web Token), API'lerinize g\u00fcvenli eri\u015fimi do\u011frulamak i\u00e7in yayg\u0131n olarak kullan\u0131lan standart bir y\u00f6ntemdir.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nestjsde-swaggeri-jwt-kimlik-dogrulamasiyla-kusursuz-bir-sekilde-entegre-etme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"NestJS&#8217;de Swagger&#8217;\u0131 JWT Kimlik Do\u011frulamas\u0131yla Kusursuz Bir \u015eekilde Entegre Etme"}]},{"@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\/2857","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=2857"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/2857\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=2857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=2857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=2857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}