امروزه در میان تیمهای تحقیق و توسعه، جمله «در طی دو هفته یک سیستم احراز هویت کاربر برای من بساز» بسیار رایج است. به دلایل مختلف، این کار همیشه یکی از کارهایی بوده است که فقط به یکی از اعضای تیم داده میشود تا به پایان برساند.
در یک سمت، شما واقعا نمیخواهید مقدار زیادی از وقت خود را بر روی انجام آن هدر دهید. در سمت دیگر، نگرانید که این نوع اطلاعات اگر توسط سیستم داخلی خود شما نوشته شدده باشد، برای مقیاسپذیری در آینده بهتر است.
همینطور که آموزشهایی بیشتری بر روی وب پدید میآیند و تیمهای بیشتری در حال تلاش هستند تا معادله هزینه و منفعت پیادهسازی راه حل خود، در مقابل استفاده از یک کتابخانه یا سرویس را درک کنند، من بررسی کوتاهی از مواردی که وجود دارند را آماده کردهام. امیدوارم این لیست بتواند از هدر رفتن زمان شما جلوگیری کند، و یک تصمیم بهتر بگیرد.
۱. Passport JS
Passport نه تنها یک کتابخانه احراز هویت کاربر دارای ۱۵ هزار ستاره میباشد، بلکه احتمالا رایجترین راه برای توسعه دهندگان JavaScript است که از یک کتابخانه خارجی برای احراز هویت کاربر استفاده کنند. این کتابخانه اساسا میانافزار منعطف و ماژولاری برای Node.js فراهم میکند،که میتواند با هر وباپلیکیشن بر پایه Expressای ادغام شود. این کتابخانه همچنین یک پلفرم جامعه است که انواع متنوعی از احراز هویتهای رایج مانند نام کاربری و رمز عبور، Facebook، Twitter و... را پشتیبانی میکند. اگر نمیخواهید راه حل مختص خود را پیادهسازی کنید، احتمالا این کتابخانه اولین گزینه شما باشد.
۲. Auth0
با این که این مورد نه یک کتابخانه، بلکه یک سرویس میباشد، همچنان یک راه عظیم، اما سریع برای انجام کار میباشد. Auth0 یک شرکت استارتآپ تقریبا بزرگ است که یک پلتفرم احراز هویت و مجوزدهی پهناور را برای برنامههای وب و موبایل فراهم میکند. بیش از ۱۰۰ ادغامسازی از پیش در این کتابخانه وجود دارند.
۳. Permit
Permit کتابخانهای دارای هزار ستاره اس، که فراهم کردن یک کتابخانه احراز هویت «بی نظیر» را برای اِیپیآی Node.js در هدف دارد. Permit شما را قادر میسازد تا یک لایه احراز هویت به هر اِیپیآی Node.js اضافه کنید که میتواند با فریموورکهایی مانند Express، Koa، Hapi وFastify استفاده شود. این کتابخانه میتواند با انوع مختلفی از APIها از REST گرفته تا GraphQL استفاده شود، و از این رو طراحی بی نظیری را فراهم کند. Permit تمرکز بر روی APIها (درخواستهای stateless) و پشتیبانی فریموورکهایی به جز Express را در هدف دارد. همچنین این کتابخانه به طور فعالانه در حال توسعهیابی است، که باعث میشود که انتخاب خوب برای در نظر گرفتن باشد. این مورد قطعا ارزشش را دارد که نگاهی به آن داشته باشید.
در اینجا یک مثال با Express را مشاهده مینمایید:
import { Bearer } from 'permit'
import express from 'express'
const permit = new Bearer({
basic: 'username', // Also allow a Basic Auth username as a token.
query: 'access_token', // Also allow an `?access_token=` query parameter.
})
function authenticate(req, res, next) {
// تلاش کن که نشانه حامل را در درخواست پیدا کنی
const token = permit.check(req)
// هیچ نشانهای یافت نشد، پس به دنبال احراز هویت باش.
if (!token) {
permit.fail(res)
return next(new Error(`Authentication required!`))
}
// هرطور که میخواهید منطق احراز هویت خود را اجرا کنید.
db.users.findByToken(token, (err, user) => {
if (err) return next(err)
// هیچ کاربری یافت نشد، پس نشانه او نامعتبر بود.
if (!user) {
permit.fail(res)
return next(new Error(`Authentication invalid!`))
}
// احراز هویت با موفقیت انجام شد، زمینه را ذخیره کن و ادامه بده...
req.user = user
next()
})
}
const app = express()
app.get('/', (req, res) => {
res.send('Some unrestricted content.')
})
app.get('/restricted', authenticate, (req, res) => {
res.send('Restricted content!')
})
app.listen(3000)
۴. Grant
یک کتابخانه جدید و امیدوار کننده که میانافزار OAuth را برای Express، Koa و Hapi با بیش از ۱۸۰ فراهم کننده پشتیبانی شده و یک محیط کاری زنده. در صورتی که میخواهید از آن به همراه فراهم کنننده OAuth خصوصی خود استفاده کنید میتوانید کلید مورد نیاز را خودتان مشخص کنید.
۵. مدیریت احراز هویت Feathers
Feathers یک فریموورک وب متن باز، realtime و میکروسرویس برای Node.js است که از طریق منابع RESTful، سوکتّا و پلاگینهای منعطف به شما کنترلی بر روی دادههایتان میدهد.
Feathers همچنین ماژولهای مدیریت احراز هویت و مجوزدهی را فراهم میکند که شما را قادر میسازند تا اعتبارسنجی، بازنشانی رمز عبور فراموش شده و قابلیتهای دیگری را به احراز هویت آن اضافه کنید. ایده اصلی این است که متدهای احراز هویت مختلفی را تحت یک سقف و یک زیرساخت منعطف ترکیب کنید.
۶. فقط از احراز هویت Firebase استفاده کنید (برای برنامههای کوچک)
ممکن است این مورد راه حل طولانی مدت برای مدیریت احراز هویت کاربر در پلتفرم مقیاس پذیر شما نباشد، اما یک راه کاربری برای انجام کار مورد نظر، به صورت سریع و ساده برای برنامههای شما که با Firebase گسترش داده شدهاند، میباشد.
احراز هویت Firebase سرویسهای backend، SKDهایی با قابلیت استفاده ساده، و کتابخانههای رابط کاربری از پیش آماده میباشد که کاربران را به برنامه خود احراز هویت کنید. این سیستم از احراز هویت با استفاده از رمز عبور، شماره تلفن، Facebook و Twitter را پشتیبانی میکند.
موارد دیگری که ارزش اشاره را دارند:
اکثر این موراد دیگر نگهداری نمیشوند، پس با احتیاط از آنها استفاده کنید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید