<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gajendra Singh</title>
    <description>The latest articles on DEV Community by Gajendra Singh (@gajendrasingh_33).</description>
    <link>https://dev.to/gajendrasingh_33</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3957220%2Fe1a089aa-6946-44cc-b8b8-cd0fde723cd6.jpeg</url>
      <title>DEV Community: Gajendra Singh</title>
      <link>https://dev.to/gajendrasingh_33</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gajendrasingh_33"/>
    <language>en</language>
    <item>
      <title>"NestJS authentication in 5 minutes"</title>
      <dc:creator>Gajendra Singh</dc:creator>
      <pubDate>Sun, 31 May 2026 08:00:58 +0000</pubDate>
      <link>https://dev.to/gajendrasingh_33/nestjs-authentication-in-5-minutes-1d4m</link>
      <guid>https://dev.to/gajendrasingh_33/nestjs-authentication-in-5-minutes-1d4m</guid>
      <description>&lt;h1&gt;
  
  
  NestJS Authentication in 5 Minutes 🔐
&lt;/h1&gt;

&lt;p&gt;Authentication in NestJS sounds complicated at first…&lt;/p&gt;

&lt;p&gt;But the actual flow is surprisingly simple 👇&lt;/p&gt;

&lt;p&gt;User Login&lt;br&gt;
   ↓&lt;br&gt;
Verify Credentials&lt;br&gt;
   ↓&lt;br&gt;
Generate JWT Token&lt;br&gt;
   ↓&lt;br&gt;
Protected Routes&lt;br&gt;
   ↓&lt;br&gt;
Validate Token&lt;/p&gt;
&lt;h3&gt;
  
  
  1️⃣ Install required packages
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @nestjs/jwt @nestjs/passport passport passport-jwt bcrypt
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; @types/passport-jwt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2️⃣ Generate auth files
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nest g module auth
nest g service auth
nest g controller auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  3️⃣ Configure JWT (&lt;code&gt;auth.module.ts&lt;/code&gt;)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Module&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;imports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nx"&gt;JwtModule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;secret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;super-secret-key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;signOptions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;expiresIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1d&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AuthModule&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  4️⃣ Create login function (&lt;code&gt;auth.service.ts&lt;/code&gt;)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AuthService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;jwtService&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JwtService&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

  &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;access_token&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;jwtService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  5️⃣ Protect routes with JWT
&lt;/h3&gt;

&lt;p&gt;@UseGuards(AuthGuard("jwt"))&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/get"&gt;@get&lt;/a&gt;("profile")&lt;br&gt;
getProfile(@Request() req) {&lt;br&gt;
  return req.user;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authentication = Login → Token → Verify → Access&lt;/strong&gt; 🔥&lt;/p&gt;

&lt;p&gt;⚠️ Bonus tip: Never store passwords directly. Use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nx"&gt;bcrypt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nx"&gt;bcrypt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compare&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What confused you most when learning authentication? 👇&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>backend</category>
      <category>node</category>
      <category>webdev</category>
    </item>
    <item>
      <title>5 Micro-Habits That Will Make You a Better Developer</title>
      <dc:creator>Gajendra Singh</dc:creator>
      <pubDate>Thu, 28 May 2026 19:33:59 +0000</pubDate>
      <link>https://dev.to/gajendrasingh_33/5-micro-habits-that-will-make-you-a-better-developer-4f07</link>
      <guid>https://dev.to/gajendrasingh_33/5-micro-habits-that-will-make-you-a-better-developer-4f07</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hey DEV community! 👋&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We all know the tech landscape moves fast. Trying to learn everything at once is a fast track to burnout.&lt;/p&gt;

&lt;p&gt;Instead of planning massive 4-hour study sessions that never happen, try building these &lt;strong&gt;5 micro-habits&lt;/strong&gt; into your daily routine:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The 15-Minute Read 📖&lt;/strong&gt;&lt;br&gt;
Read one technical article or documentation page every morning with your coffee.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Read Code, Don't Just Write It 🔍&lt;/strong&gt;&lt;br&gt;
Spend 10 minutes looking at open-source repositories or a teammate's pull request. You'll catch new patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Break Your Code on Purpose 🛠️&lt;/strong&gt;&lt;br&gt;
Change a variable, delete a line, and see exactly how the error message reads. Understanding failures makes you a faster debugger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Document as You Go 📝&lt;/strong&gt;&lt;br&gt;
Write down why you made a specific architectural choice in a scratchpad. Future you will thank you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Teach What You Just Learned 🧑‍🏫&lt;/strong&gt;&lt;br&gt;
Explain a complex concept to an AI, a rubber duck, or write a quick 200-word post right here on DEV.&lt;/p&gt;

&lt;p&gt;Consistency beats intensity every single time.&lt;/p&gt;

&lt;p&gt;👇 What is one small habit that completely changed your workflow? Let’s discuss in the comments!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>learning</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
