{"id":9019,"date":"2025-01-08T22:30:16","date_gmt":"2025-01-08T19:30:16","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/"},"modified":"2025-01-08T22:30:16","modified_gmt":"2025-01-08T19:30:16","slug":"nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/","title":{"rendered":"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma"},"content":{"rendered":"<p><body><\/p>\n<p>NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma<\/p>\n<p>Merhaba!  Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve g\u00fcvenilir bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fim.  Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in yararl\u0131 bir k\u0131lavuz olacakt\u0131r.  \u00d6ncelikle, gerekli paketleri kuraca\u011f\u0131z. Ard\u0131ndan, kullan\u0131c\u0131 modelini, servislerini ve kontrol\u00f6rlerini olu\u015fturaca\u011f\u0131z.  Son olarak da, JWT (JSON Web Token) kullanarak g\u00fcvenli bir \u015fekilde kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz.<\/p>\n<h2>Gerekli Paketlerin Kurulumu<\/h2>\n<p>Ba\u015flamadan \u00f6nce, projenize a\u015fa\u011f\u0131daki paketleri kurman\u0131z gerekmektedir:<\/p>\n<pre><code class=\"language-bash\">\nnpm install @nestjs\/jwt passport passport-local mongoose\n<\/code><\/pre>\n<p>Bu paketler, JWT token olu\u015fturma, Passport.js ile kimlik do\u011frulama stratejileri olu\u015fturma ve MongoDB ile etkile\u015fim kurma i\u00e7in gereklidir.  Passport.js, farkl\u0131 kimlik do\u011frulama stratejilerini kolayca entegre etmenizi sa\u011flar.  Mongoose ise MongoDB ile etkile\u015fim kurmay\u0131 kolayla\u015ft\u0131ran bir ORM (Object-Relational Mapper)&#8217;d\u0131r.<\/p>\n<h2>Kullan\u0131c\u0131 Modelinin Olu\u015fturulmas\u0131<\/h2>\n<p>\u0130lk ad\u0131m olarak, MongoDB&#8217;de kullan\u0131c\u0131 bilgilerini saklamak i\u00e7in bir model olu\u015fturmal\u0131y\u0131z.  Bu model, kullan\u0131c\u0131 ad\u0131, \u015fifre ve di\u011fer gerekli bilgileri i\u00e7erecektir.  A\u015fa\u011f\u0131da \u00f6rnek bir kullan\u0131c\u0131 modeli bulunmaktad\u0131r:<\/p>\n<pre><code class=\"language-typescript\">\nimport { Prop, Schema, SchemaFactory } from '@nestjs\/mongoose';\nimport { Document } from 'mongoose';\n\nexport type UserDocument = User & Document;\n\n@Schema()\nexport class User {\n  @Prop()\n  username: string;\n\n  @Prop()\n  password: string;\n\n  \/\/ Di\u011fer \u00f6zellikler eklenebilir...\n}\n\nexport const UserSchema = SchemaFactory.createForClass(User);\n<\/code><\/pre>\n<p>Bu model, kullan\u0131c\u0131 ad\u0131 ve \u015fifre alanlar\u0131n\u0131 i\u00e7erir.  \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re di\u011fer alanlar\u0131 da ekleyebilirsiniz. \u015eifreleme i\u00e7in bcrypt gibi bir k\u00fct\u00fcphane kullanman\u0131z \u00f6nerilir.  Bu g\u00fcvenli bir \u015fekilde \u015fifreleri saklaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<h2>Kullan\u0131c\u0131 Servisi<\/h2>\n<p>Kullan\u0131c\u0131 servisinde, kullan\u0131c\u0131 kay\u0131t ve giri\u015f i\u015flemlerini y\u00f6netece\u011fiz.  Burada, kullan\u0131c\u0131 modelini kullanarak veri taban\u0131yla etkile\u015fime girece\u011fiz.<\/p>\n<pre><code class=\"language-typescript\">\n\/\/ ... (importlar)\n\n@Injectable()\nexport class UserService {\n  constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {}\n\n  async create(user: User) {\n    const createdUser = new this.userModel(user);\n    return createdUser.save();\n  }\n\n  async findOne(username: string): Promise<UserDocument | undefined> {\n     return this.userModel.findOne({ username });\n  }\n}\n<\/code><\/pre>\n<p>Bu servis, kullan\u0131c\u0131 olu\u015fturma ve var olan bir kullan\u0131c\u0131y\u0131 bulma metodlar\u0131n\u0131 i\u00e7erir.  @InjectModel decorator&#8217;\u0131,  mongoose modelini enjekte eder.<\/p>\n<h2>Kimlik Do\u011frulama Stratejisi (Passport.js)<\/h2>\n<p>Passport.js kullanarak Local Strategy ile kimlik do\u011frulama stratejimizi olu\u015ftural\u0131m. Bu strateji, kullan\u0131c\u0131 ad\u0131 ve \u015fifre kullanarak kimlik do\u011frulamas\u0131n\u0131 ger\u00e7ekle\u015ftirir.<\/p>\n<pre><code class=\"language-typescript\">\nimport { PassportStrategy } from '@nestjs\/passport';\nimport { Strategy } from 'passport-local';\nimport { Injectable, UnauthorizedException } from '@nestjs\/common';\nimport { UserService } from '.\/user.service';\nimport { compare } from 'bcrypt'; \/\/ \u015eifre kar\u015f\u0131la\u015ft\u0131rma i\u00e7in bcrypt kullan\u0131n\n\n\n@Injectable()\nexport class LocalStrategy extends PassportStrategy(Strategy) {\n  constructor(private userService: UserService) {\n    super();\n  }\n\n  async validate(username: string, password: string): Promise<any> {\n    const user = await this.userService.findOne(username);\n    if (!user) {\n      throw new UnauthorizedException();\n    }\n    const isMatch = await compare(password, user.password); \/\/ Bcrypt ile \u015fifre kar\u015f\u0131la\u015ft\u0131rma\n    if (!isMatch) {\n      throw new UnauthorizedException();\n    }\n    return user;\n  }\n}\n<\/code><\/pre>\n<h2>JWT (JSON Web Token) Kullan\u0131m\u0131<\/h2>\n<p>Kullan\u0131c\u0131 ba\u015far\u0131l\u0131 bir \u015fekilde giri\u015f yapt\u0131ktan sonra, bir JWT token\u0131 olu\u015fturup kullan\u0131c\u0131ya g\u00f6nderece\u011fiz.  Bu token, sonraki isteklerde kimlik do\u011frulamas\u0131 i\u00e7in kullan\u0131lacakt\u0131r.  NestJS&#8217;in JWT mod\u00fcl\u00fcn\u00fc kullanarak token olu\u015fturmak olduk\u00e7a kolayd\u0131r.<\/p>\n<pre><code class=\"language-typescript\">\n\/\/ ... (importlar)\n@Injectable()\nexport class AuthService {\n  constructor(\n    private userService: UserService,\n    private jwtService: JwtService,\n  ) {}\n\n  async validateUser(username: string, pass: string): Promise<any> {\n    const user = await this.userService.findOne(username);\n    if (user && (await compare(pass, user.password))) {\n      return user;\n    }\n    return null;\n  }\n\n  async login(user: any) {\n    const payload = { username: user.username, sub: user._id };\n    return {\n      access_token: this.jwtService.sign(payload),\n    };\n  }\n}\n<\/code><\/pre>\n<p>Bu servis, kullan\u0131c\u0131y\u0131 do\u011frulad\u0131ktan sonra JWT token&#8217;\u0131n\u0131 olu\u015fturur.  jwtService.sign() metodu, JWT token&#8217;\u0131n\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.  payload objesi, token&#8217;da ta\u015f\u0131nacak bilgileri i\u00e7erir.<\/p>\n<h2>Auth Guard<\/h2>\n<p>G\u00fcvenlik i\u00e7in,  korunan rotalar\u0131 korumak amac\u0131yla bir Auth Guard kullanman\u0131z gerekir.  Bu guard, gelen isteklerin JWT token&#8217;\u0131n\u0131 do\u011frulayarak yetkisiz eri\u015fimi engeller.<\/p>\n<pre><code class=\"language-typescript\">\nimport { Injectable, CanActivate, ExecutionContext } from '@nestjs\/common';\nimport { Observable } from 'rxjs';\nimport { JwtService } from '@nestjs\/jwt';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n  constructor(private jwtService: JwtService) {}\n\n  canActivate(\n    context: ExecutionContext,\n  ): boolean | Promise<boolean> | Observable<boolean> {\n    const request = context.switchToHttp().getRequest();\n    const token = request.headers.authorization.split(' ')[1];\n\n    try {\n      const payload = this.jwtService.verify(token);\n      request['user'] = payload;\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n}\n<\/code><\/pre>\n<p>Bu guard, Authorization header&#8217;\u0131ndaki token&#8217;\u0131 do\u011frular ve do\u011fruysa iste\u011fi devam ettirir. Aksi takdirde, yetkisiz eri\u015fim hatas\u0131 d\u00f6nd\u00fcr\u00fcl\u00fcr.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, NestJS ve MongoDB kullanarak basit bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 g\u00f6sterdim.  Bu, daha karma\u015f\u0131k sistemler i\u00e7in temel bir yap\u0131 ta\u015f\u0131 g\u00f6revi g\u00f6r\u00fcr.  Unutmay\u0131n ki, ger\u00e7ek d\u00fcnya uygulamalar\u0131nda daha geli\u015fmi\u015f g\u00fcvenlik \u00f6nlemleri al\u0131nmal\u0131d\u0131r.  Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.  Ayr\u0131ca,  <a href=\"https:\/\/dev.to\/dewmyth\/how-to-create-a-quick-authentication-library-for-nestjsmongodb-application-45bh\">bu makaleyi yazarken ba\u015fvurdu\u011fum kayna\u011f\u0131<\/a> da inceleyebilirsiniz.  Bu bilgilerle g\u00fcvenli ve sa\u011flam bir kimlik do\u011frulama sistemini olu\u015fturabilirsiniz.  \u0130yi kodlamalar!<\/p>\n<p>#Etiketler: nestjs, mongodb, kimlik do\u011frulama, authentication, g\u00fcvenlik, nodejs, typescript, jwt, passport, mongoose, bcrypt, auth guard, local strategy, json web token<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma Merhaba! Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve&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-9019","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\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma<\/title>\n<meta name=\"description\" content=\"Merhaba! Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve g\u00fcvenilir bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fim. Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in yararl\u0131 bir k\u0131lavuz olacakt\u0131r. \u00d6ncelikle, gerekli paketleri kuraca\u011f\u0131z. Ard\u0131ndan, kullan\u0131c\u0131 modelini, servislerini ve kontrol\u00f6rlerini olu\u015fturaca\u011f\u0131z. Son olarak da, JWT (JSON Web Token) kullanarak g\u00fcvenli bir \u015fekilde kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz.\" \/>\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\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve g\u00fcvenilir bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fim. Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in yararl\u0131 bir k\u0131lavuz olacakt\u0131r. \u00d6ncelikle, gerekli paketleri kuraca\u011f\u0131z. Ard\u0131ndan, kullan\u0131c\u0131 modelini, servislerini ve kontrol\u00f6rlerini olu\u015fturaca\u011f\u0131z. Son olarak da, JWT (JSON Web Token) kullanarak g\u00fcvenli bir \u015fekilde kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-08T19:30:16+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=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma\",\"datePublished\":\"2025-01-08T19:30:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/\"},\"wordCount\":616,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/\",\"name\":\"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-01-08T19:30:16+00:00\",\"description\":\"Merhaba! Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve g\u00fcvenilir bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fim. Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in yararl\u0131 bir k\u0131lavuz olacakt\u0131r. \u00d6ncelikle, gerekli paketleri kuraca\u011f\u0131z. Ard\u0131ndan, kullan\u0131c\u0131 modelini, servislerini ve kontrol\u00f6rlerini olu\u015fturaca\u011f\u0131z. Son olarak da, JWT (JSON Web Token) kullanarak g\u00fcvenli bir \u015fekilde kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma\"}]},{\"@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\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma","description":"Merhaba! Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve g\u00fcvenilir bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fim. Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in yararl\u0131 bir k\u0131lavuz olacakt\u0131r. \u00d6ncelikle, gerekli paketleri kuraca\u011f\u0131z. Ard\u0131ndan, kullan\u0131c\u0131 modelini, servislerini ve kontrol\u00f6rlerini olu\u015fturaca\u011f\u0131z. Son olarak da, JWT (JSON Web Token) kullanarak g\u00fcvenli bir \u015fekilde kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz.","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\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/","og_locale":"tr_TR","og_type":"article","og_title":"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma","og_description":"Merhaba! Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve g\u00fcvenilir bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fim. Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in yararl\u0131 bir k\u0131lavuz olacakt\u0131r. \u00d6ncelikle, gerekli paketleri kuraca\u011f\u0131z. Ard\u0131ndan, kullan\u0131c\u0131 modelini, servislerini ve kontrol\u00f6rlerini olu\u015fturaca\u011f\u0131z. Son olarak da, JWT (JSON Web Token) kullanarak g\u00fcvenli bir \u015fekilde kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz.","og_url":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-01-08T19:30:16+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma","datePublished":"2025-01-08T19:30:16+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/"},"wordCount":616,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/","url":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/","name":"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-01-08T19:30:16+00:00","description":"Merhaba! Bu makalede, NestJS ve MongoDB kullanarak h\u0131zl\u0131 ve g\u00fcvenilir bir kimlik do\u011frulama k\u00fct\u00fcphanesi nas\u0131l olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fim. Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in yararl\u0131 bir k\u0131lavuz olacakt\u0131r. \u00d6ncelikle, gerekli paketleri kuraca\u011f\u0131z. Ard\u0131ndan, kullan\u0131c\u0131 modelini, servislerini ve kontrol\u00f6rlerini olu\u015fturaca\u011f\u0131z. Son olarak da, JWT (JSON Web Token) kullanarak g\u00fcvenli bir \u015fekilde kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-mongodb-uygulamalari-icin-hizli-bir-kimlik-dogrulama-kutuphanesi-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"NestJS\/MongoDB Uygulamalar\u0131 \u0130\u00e7in H\u0131zl\u0131 Bir Kimlik Do\u011frulama K\u00fct\u00fcphanesi Olu\u015fturma"}]},{"@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\/9019","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=9019"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/9019\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=9019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=9019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=9019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}