{"id":30211,"date":"2025-09-25T02:30:25","date_gmt":"2025-09-24T23:30:25","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/"},"modified":"2025-09-25T02:30:25","modified_gmt":"2025-09-24T23:30:25","slug":"nestjs-blogda-kullanici-sistemi-adim-adim-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/","title":{"rendered":"NestJS Blog&#8217;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber"},"content":{"rendered":"<p>NestJS Blog&#8217;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber<\/p>\n<p>Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme gibi temel fonksiyonlar\u0131 nas\u0131l entegre edece\u011finizi bilmiyor musunuz?  Bu makale, NestJS framework&#8217;\u00fcn\u00fc kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturman\u0131za yard\u0131mc\u0131 olacak.  G\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog i\u00e7in ihtiya\u00e7 duydu\u011funuz t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlarla birlikte detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z.  Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 olacakt\u0131r.<\/p>\n<h2>\u00d6\u011frenme Yol Haritas\u0131<\/h2>\n<ul>\n<li><strong>Yeni Ba\u015flayan:<\/strong> Temel NestJS kavramlar\u0131 ve proje kurulumu.<\/li>\n<li><strong>Orta Seviye:<\/strong>  Kullan\u0131c\u0131 modelinin olu\u015fturulmas\u0131, veritaban\u0131 entegrasyonu ve g\u00fcvenlik \u00f6nlemleri.<\/li>\n<li><strong>\u0130leri Seviye:<\/strong> JWT (JSON Web Token) kullan\u0131m\u0131, yetkilendirme ve rol tabanl\u0131 eri\u015fim kontrol\u00fc.<\/li>\n<\/ul>\n<h2>1. Temel Kavramlar: NestJS ve Kullan\u0131c\u0131 Sistemleri<\/h2>\n<p>\u00d6ncelikle, NestJS&#8217;in ne oldu\u011funu ve kullan\u0131c\u0131 sistemlerinin temel bile\u015fenlerini anlamak \u00f6nemlidir.  NestJS, Node.js \u00fczerinde \u00e7al\u0131\u015fan ve Angular&#8217;dan esinlenen bir backend framework&#8217;\u00fcd\u00fcr.  Mod\u00fcler yap\u0131s\u0131 ve TypeScript deste\u011fi ile b\u00fcy\u00fck ve karma\u015f\u0131k projelerde bile kolayca geli\u015ftirme yapman\u0131z\u0131 sa\u011flar.  Bir kullan\u0131c\u0131 sistemi ise, kullan\u0131c\u0131lar\u0131n bir platforma kay\u0131t olmalar\u0131n\u0131, giri\u015f yapmalar\u0131n\u0131, profillerini y\u00f6netmelerini ve farkl\u0131 i\u00e7eriklere eri\u015fimlerini kontrol etmeyi sa\u011flayan bir sistemdir.<\/p>\n<p>Kullan\u0131c\u0131 sistemleri genellikle \u015fu bile\u015fenlerden olu\u015fur:  Kay\u0131t (Registration), Giri\u015f (Login), Oturum A\u00e7ma (Session Management), Yetkilendirme (Authorization), Kimlik Do\u011frulama (Authentication).  Bu bile\u015fenler, g\u00fcvenli ve verimli bir \u015fekilde \u00e7al\u0131\u015facak \u015fekilde tasarlanmal\u0131d\u0131r.  \u00d6rne\u011fin, \u015fifrelerin g\u00fcvenli bir \u015fekilde saklanmas\u0131 i\u00e7in hashing algoritmalar\u0131 kullan\u0131lmas\u0131 gerekmektedir.  Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">Fatih Soysal&#8217;\u0131n bloguna<\/a> g\u00f6z atabilirsiniz.<\/p>\n<p>Bu makalede, g\u00fcvenli bir kullan\u0131c\u0131 sistemi olu\u015fturmak i\u00e7in TypeORM ve Passport.js gibi yayg\u0131n olarak kullan\u0131lan k\u00fct\u00fcphaneleri kullanaca\u011f\u0131z.  TypeORM, veritaban\u0131 etkile\u015fimini kolayla\u015ft\u0131r\u0131rken, Passport.js farkl\u0131 kimlik do\u011frulama stratejileri sunar.  Bu k\u00fct\u00fcphaneleri projeye entegre etmenin detaylar\u0131n\u0131 ilerleyen b\u00f6l\u00fcmlerde inceleyece\u011fiz.<\/p>\n<h2>2. Proje Kurulumu ve \u0130lk Ad\u0131mlar: NestJS ve TypeORM<\/h2>\n<p>\u0130lk ad\u0131m olarak, yeni bir NestJS projesi olu\u015ftural\u0131m ve TypeORM&#8217;u entegre edelim.  Bu i\u015flem i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">npm install -g @nestjs\/cli\nnest new blog-app\ncd blog-app\nnpm install typeorm @nestjs\/typeorm<\/pre>\n<p><\/code><\/p>\n<p>Ard\u0131ndan, <code>ormconfig.json<\/code> dosyas\u0131n\u0131 olu\u015fturarak veritaban\u0131 ba\u011flant\u0131 bilgilerinizi belirtin.  \u00d6rne\u011fin, PostgreSQL kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-json\">{\n  \"type\": \"postgres\",\n  \"host\": \"localhost\",\n  \"port\": 5432,\n  \"username\": \"your_username\",\n  \"password\": \"your_password\",\n  \"database\": \"blog_db\",\n  \"entities\": [\"dist\/**\/*.entity{.ts,.js}\"],\n  \"synchronize\": true\n}<\/pre>\n<p><\/code><\/p>\n<p><strong>Dikkat:<\/strong> <code>synchronize: true<\/code> geli\u015ftirme ortam\u0131 i\u00e7in uygundur.  \u00dcretim ortam\u0131nda bu ayar\u0131 <code>false<\/code> olarak de\u011fi\u015ftirmeyi ve g\u00f6\u00e7ler (migrations) kullanmay\u0131 unutmay\u0131n.  Veritaban\u0131 bilgilerinizi g\u00fcvenli bir \u015fekilde y\u00f6netmek i\u00e7in ortam de\u011fi\u015fkenleri kullanman\u0131z \u00f6nerilir.<\/p>\n<h2>3. Kullan\u0131c\u0131 Modelini Olu\u015fturma ve Veritaban\u0131 \u0130\u015flemleri<\/h2>\n<p>Kullan\u0131c\u0131 modelini tan\u0131mlamak i\u00e7in bir entity olu\u015ftural\u0131m.  Bu entity, kullan\u0131c\u0131lar\u0131n ad, soyad, e-posta ve \u015fifre gibi bilgilerini saklayacakt\u0131r.<\/p>\n<pre><code class=\"language-typescript\">\/\/ user.entity.ts\nimport { Entity, Column, PrimaryGeneratedColumn } from &#039;typeorm&#039;;\n\n@Entity()\nexport class User {\n  @PrimaryGeneratedColumn()\n  id: number;\n\n  @Column()\n  firstName: string;\n\n  @Column()\n  lastName: string;\n\n  @Column({ unique: true })\n  email: string;\n\n  @Column()\n  password: string;\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu modeli veritaban\u0131na yans\u0131tmak i\u00e7in TypeORM'un <code>@Entity()<\/code> ve di\u011fer dekorat\u00f6rlerini kullan\u0131yoruz.  <code>@Column()<\/code> dekorat\u00f6r\u00fc, her alan i\u00e7in veritaban\u0131 s\u00fctununu tan\u0131mlar.  <code>unique: true<\/code> \u00f6zelli\u011fi, e-posta adresinin benzersiz olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>4. Kay\u0131t ve Giri\u015f \u0130\u015flemlerinin Uygulanmas\u0131: Passport.js ile Entegrasyon<\/h2>\n<p>Kullan\u0131c\u0131 kay\u0131t ve giri\u015f i\u015flemlerini ger\u00e7ekle\u015ftirmek i\u00e7in Passport.js k\u00fct\u00fcphanesini kullanaca\u011f\u0131z.  Passport.js, farkl\u0131 kimlik do\u011frulama stratejileri sunar.  Bu \u00f6rnekte, Local Strategy'i kullanarak kullan\u0131c\u0131 ad\u0131 ve \u015fifre ile giri\u015f yapaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-typescript\">\/\/ auth.service.ts\nimport { Injectable } from &#039;@nestjs\/common&#039;;\nimport { InjectRepository } from &#039;@nestjs\/typeorm&#039;;\nimport { Repository } from &#039;typeorm&#039;;\nimport { User } from &#039;.\/user.entity&#039;;\nimport * as bcrypt from &#039;bcrypt&#039;;\n\n@Injectable()\nexport class AuthService {\n  constructor(@InjectRepository(User) private userRepository: Repository<User>) {}\n\n  async register(user: User): Promise<User> {\n    const hashedPassword = await bcrypt.hash(user.password, 10);\n    user.password = hashedPassword;\n    return this.userRepository.save(user);\n  }\n\n  async login(user: User): Promise<any> {\n    \/\/ ... (Login i\u015flemleri) ...\n  }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>bcrypt<\/code> k\u00fct\u00fcphanesi ile \u015fifreleri g\u00fcvenli bir \u015fekilde hashliyoruz.  <code>register<\/code> fonksiyonu, yeni bir kullan\u0131c\u0131 kaydederken \u015fifreyi hashleyerek veritaban\u0131na kaydeder.  <code>login<\/code> fonksiyonunda ise, veritaban\u0131nda bulunan kullan\u0131c\u0131 ile girilen bilgileri kar\u015f\u0131la\u015ft\u0131r\u0131p do\u011frulama i\u015flemini yapaca\u011f\u0131z.<\/p>\n<h2>5. JWT (JSON Web Token) ile G\u00fcvenli Oturum Y\u00f6netimi<\/h2>\n<p>JWT (JSON Web Token), kullan\u0131c\u0131 kimlik bilgilerini g\u00fcvenli bir \u015fekilde ta\u015f\u0131mak i\u00e7in kullan\u0131lan bir standartt\u0131r.  JWT kullanarak, kullan\u0131c\u0131 giri\u015f yapt\u0131ktan sonra bir token \u00fcretip, sonraki isteklerde bu token'\u0131 kullanarak kimlik do\u011frulama i\u015flemini ger\u00e7ekle\u015ftirebiliriz.  NestJS, JWT kullan\u0131m\u0131n\u0131 kolayla\u015ft\u0131ran paketler sunar.<\/p>\n<pre><code class=\"language-typescript\">\/\/ auth.service.ts (JWT eklendi)\n\/\/ ... (di\u011fer kodlar) ...\nimport { JwtService } from &#039;@nestjs\/jwt&#039;;\n\n@Injectable()\nexport class AuthService {\n  constructor(\n    @InjectRepository(User) private userRepository: Repository<User>,\n    private jwtService: JwtService,\n  ) {}\n\n  async login(user: User): Promise<{ accessToken: string }> {\n    const payload = { sub: user.id, username: user.email };\n    const accessToken = await this.jwtService.sign(payload);\n    return { accessToken };\n  }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>jwtService.sign()<\/code> fonksiyonu ile bir JWT token'\u0131 \u00fcretiyoruz.  Bu token, kullan\u0131c\u0131 bilgilerini i\u00e7erir ve isteklere eklenerek kimlik do\u011frulamas\u0131 sa\u011flan\u0131r.<\/p>\n<h2>6. Yetkilendirme (Authorization) ve Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc<\/h2>\n<p>Kullan\u0131c\u0131lar\u0131n yaln\u0131zca yetkili olduklar\u0131 kaynaklara eri\u015febilmelerini sa\u011flamak i\u00e7in yetkilendirme mekanizmalar\u0131 kullanmal\u0131y\u0131z.  Rol tabanl\u0131 eri\u015fim kontrol\u00fc (RBAC), farkl\u0131 kullan\u0131c\u0131lara farkl\u0131 yetkiler atamam\u0131za olanak tan\u0131r.  \u00d6rne\u011fin, y\u00f6netici kullan\u0131c\u0131lar\u0131n\u0131n t\u00fcm i\u00e7erikleri d\u00fczenleme yetkisine sahip olmas\u0131n\u0131, normal kullan\u0131c\u0131lar\u0131n ise yaln\u0131zca kendi i\u00e7eriklerini d\u00fczenleyebilmelerini sa\u011flayabiliriz.<\/p>\n<p>Bu, NestJS'in Guard mekanizmas\u0131 ve rol tabanl\u0131 yetkilendirme k\u00fct\u00fcphaneleri ile ger\u00e7ekle\u015ftirilebilir.  Her rota i\u00e7in ayr\u0131 ayr\u0131 yetkilendirme kurallar\u0131 tan\u0131mlayarak istedi\u011finiz eri\u015fim seviyesini sa\u011flayabilirsiniz. \u00d6rne\u011fin, sadece y\u00f6netici kullan\u0131c\u0131lar\u0131n\u0131n eri\u015febilece\u011fi bir rota i\u00e7in bir Guard olu\u015fturabilirsiniz.<\/p>\n<h2>7. G\u00fcvenlik Uyar\u0131lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<p>Bir kullan\u0131c\u0131 sistemi olu\u015ftururken g\u00fcvenlik en \u00f6nemli konulardan biridir.  \u015eifreleri g\u00fcvenli bir \u015fekilde saklamak, SQL enjeksiyonuna kar\u015f\u0131 \u00f6nlem almak, XSS (Cross-Site Scripting) sald\u0131r\u0131lar\u0131n\u0131 engellemek ve di\u011fer g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak son derece \u00f6nemlidir.  Bu konuda daha fazla bilgi i\u00e7in OWASP (Open Web Application Security Project) kaynaklar\u0131na ba\u015fvurabilirsiniz.<\/p>\n<div style=\"background-color: #fdd; padding: 10px; border: 1px solid #faa; margin-bottom: 10px;\">\n<h3>Dikkat!<\/h3>\n<p>\u015eifreleri d\u00fcz metin olarak saklamay\u0131n. Her zaman g\u00fcvenli hashing algoritmalar\u0131 kullan\u0131n (\u00f6rne\u011fin, bcrypt).<\/p>\n<\/div>\n<p>Ayr\u0131ca, kullan\u0131c\u0131 girdilerini do\u011frulamak ve do\u011frulama i\u015flemlerini d\u00fczenli aral\u0131klarla g\u00fcncellemek de g\u00fcvenlik i\u00e7in \u00f6nemlidir. D\u00fczenli g\u00fcvenlik denetimleri yaparak potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 tespit edebilirsiniz.  Her zaman g\u00fcncel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 takip edin ve bunlara kar\u015f\u0131 gerekli \u00f6nlemleri al\u0131n.<\/p>\n<h2>8. Performans Kar\u015f\u0131la\u015ft\u0131rmalar\u0131 ve Optimizasyon<\/h2>\n<p>Kullan\u0131c\u0131 sisteminin performans\u0131, \u00f6zellikle y\u00fcksek trafikli bloglarda son derece \u00f6nemlidir.  Veritaban\u0131 sorgular\u0131n\u0131 optimize etmek, \u00f6nbelle\u011fe alma mekanizmalar\u0131 kullanmak ve gerekli olmayan i\u015flemleri azaltmak performans\u0131 art\u0131rmak i\u00e7in \u00f6nemli ad\u0131mlard\u0131r.<\/p>\n<table>\n<tr>\n<th>Y\u00f6ntem<\/th>\n<th>Performans<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>Veritaban\u0131 Optimizasyonu<\/td>\n<td>Y\u00fcksek<\/td>\n<td>\u0130ndeksler, sorgular\u0131n optimize edilmesi<\/td>\n<\/tr>\n<tr>\n<td>\u00d6nbelle\u011fe Alma<\/td>\n<td>Orta<\/td>\n<td>Redis veya Memcached gibi \u00f6nbellek sistemleri<\/td>\n<\/tr>\n<tr>\n<td>Asenkron \u0130\u015flemler<\/td>\n<td>Orta<\/td>\n<td>Asenkron i\u015flemler ile performans\u0131 artt\u0131rmak<\/td>\n<\/tr>\n<\/table>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, NestJS kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturmay\u0131 \u00f6\u011frendiniz.  JWT ile g\u00fcvenli oturum y\u00f6netimi, yetkilendirme ve performans optimizasyonu gibi konular\u0131 ele alarak, g\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog platformu geli\u015ftirmeniz i\u00e7in gereken temel ad\u0131mlar\u0131 g\u00f6sterdik.  Daha fazla bilgi ve ileri d\u00fczey teknikler i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">Fatih Soysal'\u0131n bloguna<\/a> g\u00f6z atabilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li><strong>JWT'ler ne kadar s\u00fcre ge\u00e7erli olmal\u0131d\u0131r?<\/strong>  JWT'lerin ge\u00e7erlilik s\u00fcresi, uygulaman\u0131z\u0131n g\u00fcvenlik gereksinimlerine ba\u011fl\u0131d\u0131r. K\u0131sa s\u00fcreli tokenler daha g\u00fcvenlidir, ancak s\u0131k s\u0131k yenilenmeleri gerekir.<\/li>\n<li><strong>\u015eifreleri nas\u0131l g\u00fcvenli bir \u015fekilde saklamal\u0131y\u0131m?<\/strong>  Her zaman g\u00fcvenli hashing algoritmalar\u0131 (\u00f6rne\u011fin, bcrypt) kullan\u0131n ve \u015fifreleri d\u00fcz metin olarak saklamay\u0131n.<\/li>\n<li><strong>Rol tabanl\u0131 eri\u015fim kontrol\u00fcn\u00fc nas\u0131l uygulayabilirim?<\/strong>  NestJS'in Guard mekanizmas\u0131 ve rol tabanl\u0131 yetkilendirme k\u00fct\u00fcphaneleri kullan\u0131labilir.<\/li>\n<li><strong>Veritaban\u0131 ba\u011flant\u0131s\u0131n\u0131 nas\u0131l yap\u0131land\u0131rmal\u0131y\u0131m?<\/strong>  <code>ormconfig.json<\/code> dosyas\u0131nda veritaban\u0131 ba\u011flant\u0131 bilgilerinizi belirtmeniz gerekir.<\/li>\n<li><strong>Kullan\u0131c\u0131 kay\u0131t i\u015flemi nas\u0131l yap\u0131l\u0131r?<\/strong>  Kullan\u0131c\u0131 kay\u0131t i\u015flemi i\u00e7in <code>AuthService<\/code>'de bir register metodu olu\u015fturmal\u0131 ve \u015fifreyi hashleyerek veritaban\u0131na kaydetmelisiniz.<\/li>\n<\/ul>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"NestJS Blog&#8217;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme&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-30211","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 Blog&#039;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber<\/title>\n<meta name=\"description\" content=\"Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme gibi temel fonksiyonlar\u0131 nas\u0131l entegre edece\u011finizi bilmiyor musunuz? Bu makale, NestJS framework&#039;\u00fcn\u00fc kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturman\u0131za yard\u0131mc\u0131 olacak. G\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog i\u00e7in ihtiya\u00e7 duydu\u011funuz t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlarla birlikte detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 olacakt\u0131r.\" \/>\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-blogda-kullanici-sistemi-adim-adim-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NestJS Blog&#039;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber\" \/>\n<meta property=\"og:description\" content=\"Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme gibi temel fonksiyonlar\u0131 nas\u0131l entegre edece\u011finizi bilmiyor musunuz? Bu makale, NestJS framework&#039;\u00fcn\u00fc kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturman\u0131za yard\u0131mc\u0131 olacak. G\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog i\u00e7in ihtiya\u00e7 duydu\u011funuz t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlarla birlikte detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 olacakt\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-24T23:30:25+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=\"7 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"NestJS Blog&#8217;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber\",\"datePublished\":\"2025-09-24T23:30:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/\"},\"wordCount\":1277,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/\",\"name\":\"NestJS Blog'da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-24T23:30:25+00:00\",\"description\":\"Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme gibi temel fonksiyonlar\u0131 nas\u0131l entegre edece\u011finizi bilmiyor musunuz? Bu makale, NestJS framework'\u00fcn\u00fc kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturman\u0131za yard\u0131mc\u0131 olacak. G\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog i\u00e7in ihtiya\u00e7 duydu\u011funuz t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlarla birlikte detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 olacakt\u0131r.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NestJS Blog&#8217;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber\"}]},{\"@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 Blog'da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber","description":"Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme gibi temel fonksiyonlar\u0131 nas\u0131l entegre edece\u011finizi bilmiyor musunuz? Bu makale, NestJS framework'\u00fcn\u00fc kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturman\u0131za yard\u0131mc\u0131 olacak. G\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog i\u00e7in ihtiya\u00e7 duydu\u011funuz t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlarla birlikte detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 olacakt\u0131r.","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-blogda-kullanici-sistemi-adim-adim-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"NestJS Blog'da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber","og_description":"Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme gibi temel fonksiyonlar\u0131 nas\u0131l entegre edece\u011finizi bilmiyor musunuz? Bu makale, NestJS framework'\u00fcn\u00fc kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturman\u0131za yard\u0131mc\u0131 olacak. G\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog i\u00e7in ihtiya\u00e7 duydu\u011funuz t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlarla birlikte detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 olacakt\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-24T23:30:25+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"7 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"NestJS Blog&#8217;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber","datePublished":"2025-09-24T23:30:25+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/"},"wordCount":1277,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/","name":"NestJS Blog'da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-24T23:30:25+00:00","description":"Bir blog platformu geli\u015ftirmek istiyorsunuz ama kullan\u0131c\u0131 kay\u0131t, giri\u015f ve yetkilendirme gibi temel fonksiyonlar\u0131 nas\u0131l entegre edece\u011finizi bilmiyor musunuz? Bu makale, NestJS framework'\u00fcn\u00fc kullanarak ad\u0131m ad\u0131m bir kullan\u0131c\u0131 sistemi olu\u015fturman\u0131za yard\u0131mc\u0131 olacak. G\u00fcvenli ve \u00f6l\u00e7eklenebilir bir blog i\u00e7in ihtiya\u00e7 duydu\u011funuz t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlarla birlikte detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 olacakt\u0131r.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nestjs-blogda-kullanici-sistemi-adim-adim-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"NestJS Blog&#8217;da Kullan\u0131c\u0131 Sistemi: Ad\u0131m Ad\u0131m Rehber"}]},{"@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\/30211","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=30211"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30211\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}