FastAPI मध्ये JWT Authentication

Authentication विचारते "तुम्ही कोण आहात?" Authorization विचारते "तुम्ही काय करू शकता?"

जर तुम्ही सुरक्षेविना AI प्लॅटफॉर्म तयार केला, तर कोणीही खाजगी डेटा एक्सेस करू शकतो. ते वापरकर्त्यांची प्रोफाइल्स बदलू शकतात किंवा विद्यार्थ्यांची प्रगती पाहू शकतात. तुम्हाला तुमच्या संसाधनांचे (resources) संरक्षण करणे आवश्यक आहे.

JWT (JSON Web Token) हे याचे समाधान करते. प्रत्येक विनंतीसोबत (request) पासवर्ड पाठवण्याऐवजी, वापरकर्ता एक सुरक्षित टोकन पाठवतो.

कार्यप्रवाह (Workflow):

तुम्ही ही साधने वापरली पाहिजेत:

पासवर्ड कधीही प्लेन टेक्स्टमध्ये (plain text) साठवू नका. जर एखाद्या हॅकरने तुमचा डेटाबेस चोरला, तर त्यांना सर्व काही मिळेल. त्याऐवजी, हॅश (hash) साठवा.

हॅश "password123" ला यादृच्छिक (random) वर्णांच्या लांब स्ट्रिंगमध्ये रूपांतरित करतो. तुम्ही हॅशचे पुन्हा पासवर्डमध्ये रूपांतर करू शकत नाही. तुम्ही फक्त इनपुट हॅशशी जुळते की नाही हे सत्यापित करता.

ते कसे तयार करायचे:

  1. नोंदणी (Registration) वापरकर्ता युजरनेम आणि पासवर्ड पाठवतो. तुम्ही पासवर्ड हॅश करता आणि तो तुमच्या डेटाबेसमध्ये साठवता.

  2. लॉगिन (Login) वापरकर्ता क्रेडेंशियल्स पाठवतो. तुम्ही साठवलेला हॅश शोधता. पासवर्ड सत्यापित करण्यासाठी तुम्ही लायब्ररी वापरता. जर तो जुळला, तर तुम्ही टोकन तयार करता.

  3. JWT जनरेशन (JWT Generation) टोकनमध्ये वापरकर्त्याचा डेटा आणि एक्सपायरी वेळ (expiry time) असते. तुम्ही सिक्रेट की (secret key) वापरून टोकनवर स्वाक्षरी (sign) करता. जर वापरकर्त्याने डेटा बदलण्याचा प्रयत्न केला, तर सिग्नेचर फेल होते.

लॉगिन रिस्पॉन्स असा दिसतो:

{
"access_token": "eyJhbGciOiJIUzI1Ni...",
"token_type": "bearer"
}

आता वापरकर्त्याकडे तुमच्या सिस्टमची चावी आहे.

पुढच्या भागात, आपण विशिष्ट रूट्स संरक्षित करण्यासाठी आणि वापरकर्त्यांच्या भूमिका (user roles) व्यवस्थापित करण्यासाठी ही टोकन्स कशी वापरायची ते शिकणार आहोत.

स्टेप्सचा सारांश:

स्रोत: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk

पर्यायी लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi