ඔබගේ SaaS වෙබ් ඇප් එකේ පරිශීලකයින්ට “ඊ‑මේල් + මුරපදය” වැනි දීර්ඝ පෝරමයක් පුරවා ගත නොකර, Google, GitHub හෝ Microsoft ගිණුමක් භාවිතා කරමින් ලොග්‑ඉන් වීමට අවස්ථාව සලසන “සමාජ ලොගින්” විශේෂාංගය අද කාලයේ අතිශය ජනප්රියයි. මේ ලිපියෙහි අපි OAuth 2.0 හි Authorization Code Flow එක PKCE සමඟ එකතු කර, NestJS යෙදුමකට Google OAuth ස්ට්රැටජි එකක් සකස් කරන ආකාරය, සහ ගිණුම් සම්බන්ධකරණ (account linking) ගැන සැලකිලිමත් විය යුතු කරුණු විස්තර කරමු.
OAuth කුමක්ද, ඒක කෙලින්ම කෙලින්ම කෙලින්ම කුමක්ද? OAuth 2.0 යනු පාර්ශවික සේවා (Google, GitHub වැනි) වෙතින් පරිශීලකගේ හැඳුනුම් තොරතුරු ලබා ගැනීමට භාවිතා කරන ප්රමිතියකි. Authorization Code Flow එකේ, පළමුව ඔබේ ඇප් එක පරිශීලකයාට Google වෙත මාරු කරයි; Google පරිශීලකයාගේ අදාළ ගිණුම තහවුරු කර, අවසර ලබාදී, කෙටි කාලීන Authorization Code එකක් ඔබේ callback URL එකට ආපසු යවයි. එම කේතය ඔබේ සේවාදායකය (backend) තුළ Google API වෙත POST කර, Access Token සහ ID Token දෙකම ලබා ගනී. PKCE (Proof Key for Code Exchange) එක, මෙම කේතය අන්තර්ජාලයෙන් අල්ලගත් තැනකින් පවා වැරදි පරිශීලකයකුට භාවිතා නොකල හැකි ලෙස තහවුරු කරයි.
ඇප් එකේ ගිණුම් සම්බන්ධකරණය (account linking) ඇයි වැදගත්? “Sign in with Google” බොත්තමක් පමණක් එක් කිරීමෙන් පසු, පරිශීලකයාගේ Google ගිණුම හා ඔබේ ඇප් එකේ අභ්යන්තර ගිණුම එකට සම්බන්ධ කළ යුතුය. එය නිවැරදිව සැකසෙන්නේ නැතිනම්, එකම ඊ‑මේල් ලිපිනයක් භාවිතා කරමින් බහු ගිණුම් නිර්මාණය විය හැකි අතර, “account takeover” වැනි ආරක්ෂක අවදානම් උදුනේ. ඒ සඳහා ID Token හි “sub” (subject) අගය භාවිතා කර, එක් සේවාදායකයක පරිශීලකයාගේ අනන්යතාවය ස්ථාවරව තබා ගත යුතුය.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්, විශ්වවිද්යාල සිසුන්, සහ ස්ථාපිත ව්යාපාර සඳහා සමාජ ලොගින් එකතු කිරීමේ ප්රයෝජන බහුලයි:
- ඉගෙනුම් කාලය අඩු කිරීම: පරිශීලකයින්ට දිගු සයින්‑අප් පෝරමයක් පුරවා ගත නොවී, එකක් පමණක් ක්ලික් කර ඇප් එකට ඇතුළත් විය හැකිය. මෙය පාඨමාලා, හැක්තොන්, සහ තාක්ෂණික වැඩමුළු වලදී අත්යවශ්ය වේ.
- ආරක්ෂාව වැඩිදියුණු කිරීම: Google, Microsoft වැනි විශාල සපයන්නන්ගේ Multi‑Factor Authentication (MFA) භාවිතා කිරීමෙන්, පරිශීලක ගිණුම්වල ආරක්ෂාව ස්වයංක්රීයව ඉහළ යයි.
- ප්රවේශය හා පරිශීලක පදනම පුළුල් කිරීම: ශ්රී ලංකාවේ බොහෝ තරුණයින් පළමු වරට GitHub හෝ Google ගිණුමක් භාවිතා කරති. ඒවා සමඟ සම්බන්ධ කිරීමෙන්, SaaS ආරම්භකයන්ට පාරිභෝගික පදනම ඉක්මනින් ගොඩනැගීමට හැකියාව ලැබේ.
- සහයෝගී සංවර්ධනය: NestJS, Passport.js වැනි Node.js පදනම් ලයිබ්රරීන් භාවිතා කර, ලොකල් ඩිවෙලප්මෙන්ට් පරිසරයන්හිත් සරලව සමාජ ලොගින් සකස් කරගත හැකිය.
අවසන් වශයෙන්, සමාජ ලොගින් එකතු කිරීමේදී “Google outage” වැනි අවස්ථා ගැන සැලකිල්ලෙන් සිටිය යුතුය; එවැනි විකල්ප ලොගින් මාර්ග (email/password) එකක් සකසා, පරිශීලකයන්ට පසුබැසීමක් නොවෙයි.
ඔබේ SaaS එකේ පරිශීලක අත්දැකීම ඉහළ දැමීමට, OAuth + PKCE + JWT යන නවීන ප්රොටෝකෝල භාවිතා කර, සමාජ ලොගින් අත්යවශ්ය කරගන්න.