TypeScript में OAuth 2.0 और JWT प्राधिकरण: शुरुआती लोगों के लिए पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript में OAuth 2.0 और JWT प्राधिकरण: शुरुआती लोगों के लिए

\n\n

आधुनिक वेब एप्लिकेशन शायद ही कभी प्रमाणीकरण और प्राधिकरण तंत्र के बिना काम करते हैं। दो सबसे लोकप्रिय मानक हैं — OAuth 2.0 (पहुँच प्रतिनिधित्व प्रोटोकॉल) और JWT (JSON वेब टोकन, डेटा संचारित करने का एक कॉम्पैक्ट तरीका)। इस लेख में, हम TypeScript में OAuth 2.0 और JWT प्राधिकरण को लागू करने का तरीका समझेंगे, एक सरल लेकिन कार्यशील सर्वर बनाकर। यह सामग्री शुरुआती डेवलपर्स के लिए है जो TypeScript और Node.js की मूल बातों से परिचित हैं।

\n\n

OAuth 2.0 और JWT क्या हैं?

\n\n

कोड लिखने से पहले, सिद्धांत को समझना महत्वपूर्ण है।

\n\n

OAuth 2.0

\n

यह एक प्रोटोकॉल है जो उपयोगकर्ता को किसी तीसरे पक्ष के एप्लिकेशन को अपने संसाधनों (जैसे GitHub या Google पर प्रोफ़ाइल) तक सीमित पहुँच प्रदान करने की अनुमति देता है, बिना लॉगिन और पासवर्ड साझा किए। OAuth 2.0 में कई भूमिकाएँ हैं:

\n
    \n
  • Resource Owner — संसाधन का मालिक (उपयोगकर्ता)।
  • \n
  • Client — वह एप्लिकेशन जो पहुँच प्राप्त करना चाहता है।
  • \n
  • Authorization Server — वह सर्वर जो सफल प्रमाणीकरण के बाद टोकन जारी करता है।
  • \n
  • Resource Server — वह सर्वर जो संरक्षित डेटा संग्रहीत करता है।
  • \n
\n

सबसे सामान्य परिदृश्य "Authorization Code Flow" है, जहाँ उपयोगकर्ता को प्रदाता के पेज पर रीडायरेक्ट किया जाता है, लॉगिन किया जाता है, और फिर सर्वर प्राप्त कोड को टोकन के लिए एक्सचेंज करता है।

\n\n

JWT (JSON वेब टोकन)

\n

JWT header.payload.signature प्रारूप में एक स्ट्रिंग है, जिसमें डेटा (claims) होता है और इसे एक गुप्त कुंजी से हस्ताक्षरित किया जाता है। इसका उपयोग OAuth 2.0 में Access Token (अल्पकालिक) या Refresh Token (दीर्घकालिक) के रूप में किया जाता है। JWT का लाभ यह है कि यह स्व-निहित है: सर्वर इसे डेटाबेस से संपर्क किए बिना सत्यापित कर सकता है।

\n\n

प्रोजेक्ट सेटअप और निर्भरताएँ स्थापित करना

\n\n

TypeScript पर एक नया प्रोजेक्ट बनाएँ। सुनिश्चित करें कि आपके पास Node.js और npm स्थापित हैं।

\n\n
mkdir oauth-jwt-typescript\ncd oauth-jwt-typescript\nnpm init -y\nnpm install express jsonwebtoken dotenv cors cookie-parser\nnpm install -D typescript @types/node @types/express @types/jsonwebtoken @types/cors @types/cookie-parser ts-node nodemon\nnpx tsc --init\n
\n\n

tsconfig.json फ़ाइल में, "outDir": "./dist" पंक्ति को अनकमेंट करें और "rootDir": "./src" सेट करें। फ़ोल्डर संरचना बनाएँ:

\n\n
src/\n  ├── index.ts\n  ├── auth.ts\n  ├── middleware.ts\n  └── types.ts\n.env\n
\n\n

.env फ़ाइल में निम्नलिखित निर्दिष्ट करें:

\n\n
ACCESS_TOKEN_SECRET=your-secret-key-123\nREFRESH_TOKEN_SECRET=your-refresh-secret-456\nPORT=3000\n
\n\n

OAuth 2.0 और JWT के साथ सर्वर का कार्यान्वयन

\n\n

1. सर्वर की मूल संरचना (index.ts)

\n

लॉगिन, टोकन प्राप्त करने और संरक्षित एंडपॉइंट के लिए रूट के साथ एक सरल Express सर्वर लिखें।

\n\n
import express from 'express';\nimport cors from 'cors';\nimport cookieParser from 'cookie-parser';\nimport dotenv from 'dotenv';\nimport { login, refresh, logout } from './auth';\nimport { authenticateToken } from './middleware';\n\ndotenv.config();\n\nconst app = express();\napp.use(express.json());\napp.use(cors());\napp.use(cookieParser());\n\n// सार्वजनिक रूट\napp.get('/', (req, res) => {\n  res.send('OAuth 2.0 + JWT Server is running');\n});\n\n// प्रमाणीकरण (OAuth 2.0 का अनुकरण)\napp.post('/login', login);\napp.post('/token', refresh);   // Access Token का नवीनीकरण\napp.delete('/logout', logout);\n\n// संरक्षित रूट\napp.get('/protected', authenticateToken, (req, res) => {\n  res.json({ message: 'पहुँच की अनुमति है', user: (req as any).user });\n});\n\napp.listen(process.env.PORT, () => {\n  console.log(`Server running on port ${process.env.PORT}`);\n});\n
\n\n

2. डेटा प्रकार (types.ts)

\n
export interface TokenPayload {\n  userId: number;\n  username: string;\n}\n\nexport int                

ब्लॉग

पुस्तक अनुशंसाएँ