تخفیف ویژه

6 کتابخانه Javascript برای احراز هویت یا User Authentication در سال 2019

دسته بندی: آموزش
زمان مطالعه: 6 دقیقه
۳۰ آذر ۱۳۹۷

در این مطلب قصد دارم 6 کتابخانه Javascript که میتونین از اونا برای احراز هویت یا User Authentication در سال 2019 استفاده کنید رو بهتون معرفی کنم و توضیحاتی مقدماتی در مورد هر کدام در اختیارتون قرار بدم.

همونطور که میدونین User Authentication یا احراز هویت کاربران یکی از اصلی‌ترین کارهایی هست که باید در هر پروژه‌ای انجام بشه و اگر تا حالا پروژه‌ای رو انجام داده باشید، به این مورد برخورد کردید. معمولا بیشتر تیم‌ها میخوان همه چیز رو از اول خودشون به وجود بیارن و به همین دلیل وقت زیادی رو از دست میدن و در نهایت امکان داره محیطی که برای انجام این کار به وجود آوردن خیلی توسعه‌پذیر نباشه و نشه امکانات دیگه‌ای رو به اون اضافه کرد و برای هر ویژگی جدید باز باید وقت زیادی از بین بره.

راه دیگری برای مدیریت کردن User Authentication وجود داره و این هست که از ابزارها و کتابخانه‌هایی که دیگران به وجود آوردن و بصورت Open source در اختیارتون قرار داده شده، استفاده کنید. در این مقاله تعدادی از ابزارهایی که میتونین با استفاده از اونا این وظیفه مهم رو انجام بدین رو بهتون معرفی میکنم و امیدوارم که بدردتون بخوره و بتونین از اونا در پروژتون استفاده کنید.

1. ابزار Passport js

همونطور که احتمالا میدونین Passport یکی از ابزارهایی هست که بیشتر توسعه‌دهندگان از اون برای مدیریت User Authentication استفاده میکنند و اولین ابزاری هست که سراغ اون میرن. این ابزار تقریبا 15000 ستاره در Github داره و محبوبیت بالایی در میان برنامه‌نویسان داره.

این کتابخانه Middleware‌های منعطف و ماژولاری رو برای Nodejs در اختیارتون قرار میده که در هر برنامه‌ای که مثل Express باشه میتونین از اون استفاده کنید. این ابزار از Platform‌های زیادی پشتیبانی میکنه که عبارت هستند از Username و Password یا Facebook یا Twitter و ...

اگر تصمیم گرفتید که از ابزارهای Open Source برای مدیریت User Authentication استفاده کنید، Passport اولید موردی هست که میتونین سراغ اون برید.

در مورد User Authentication یا احراز هویت کاربران در Nodejs اشتباهاتی وجود داره که در این مقاله در مورد اونا بحث شده و میتونین با مطالعه اون از مشکلات دوری کنید.

2. سرویس Auth0

با وجود اینکه Auth0 یک ابزار نیست و یک سرویس محسوب میشه، ولی یکی از سریعترین روشهایی هست که با استفاده از اون میتونین User Authentication رو مدیریت کنید. با استفاده از این سرویس میتونین مسائل مربوط به Authentication و Authorization برای وب و موبایل و ... رو به راحتی مدیریت کنید. شما میتونین از هر زبان و هر API که استفاده میکنید، به راحتی به Auth0 متصل بشید و از امکانات اون بهره ببرید.

در این مقاله بهتون آموزش داده شده که چطور میتونین در Nodejs از Auth0 استفاده کنید. این ابزار رایگان نیست ولی میتونین تا زمانی که کاربرانتون به 7000 برسند، از اون بصورت رایگان استفاده کنید.

3. کتابخانه Permit

Permit یک ابزار قدرتمند برای مدیریت کردن Authentication در Nodejs هست که میتونین اون رو به API‌های مختلفی متصل کنید. شما میتونین از این ابزار به همراه فریم‌ورکهای Express و Koa و Hapi و Fastify استفاده کنید. میتونین اون رو به همراه API‌های از نوع Rest و GraphQL استفاده کنید. این ابزار هم یکی دیگر از مواردی هست که میتونین در پروژتون از اون استفاده کنید.

در اینجا میتونین مثالهای اون رو مشاهده کنید. یک مثال که به همراه 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) {
  // Try to find the bearer token in the request.
  const token = permit.check(req)

  // No token found, so ask for authentication.
  if (!token) {
    permit.fail(res)
    return next(new Error(`Authentication required!`))
  }

  // Perform your authentication logic however you'd like...
  db.users.findByToken(token, (err, user) => {
    if (err) return next(err)

    // No user found, so their token was invalid.
    if (!user) {
      permit.fail(res)
      return next(new Error(`Authentication invalid!`))
    }

    // Authentication succeeded, save the context and proceed...
    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)

به همین راحتی.

4. ابزار Grant

ابزار Grant یک Middleware هست که برای مدیریت OAuth در Express و Hapi و Koa مورد استفاده قرار میگیره. این ابزار بیش از 180 سایت یا Provider مثل Facebook و Twitter رو پشتیبانی میکنه و میتونین بصورت آنلاین در اینجا اونا رو تست کنید. شما همچنین میتونین از این ابزار برای OAuth اختصاصی که خودتون به وجود آوردید استفاده کنید.

5. ابزار everyauth

ابزار everyauth هم قبلا خیلی در بورس بود و بیشتر افراد از اون استفاده میکردن و چند سالی هست که به روز رسانی نشده ولی از قدرت بسیار بالایی برخوردار هست و میتونین از اون برای اتصال به سرویسهای مورد نظرتون استفاده کنید.

6. استفاده از Firebase

با استفاده از Firebase میتونین به سرعت Authentication رو در اپلیکیشن خودتون راه‌اندازی کنید و برای سایتهای کوچک خیلی خوب هست و میتونین اون رو توسعه بدید. این ابزار همه چیز هم در Backend و هم در Frontend رو بصورت آماده در اختیارتون قرار میده.

شما میتونین با استفاده از User و Password و استفاده از شماره تلفن همراه و همچنین با استفاده از Provider‌های معروف مثل Google و Facebook و ... وارد اپلیکیشنتون بشید. برای مطالعه مستندات این ابزار میتونین این لینک رو مشاهده کنید.

در این مقاله یک برنامه که Frontend اون از React استفاده شده رو به Firebase متصل کردند و Authentication رو با استفاده از اون مدیریت کردند. در این مقاله هم یک برنامه شبیه به مقاله قبل اما با استفاده از Vue آموزش داده شده است.

در ادامه ابزارها و لینکهایی رو بهتون معرفی میکنم که میتونین با استفاده از اونا نیز Authentication رو مدیریت کنید:

امیدوارم که این لینکها بتونه بهتون کمک کنه و بهتر بتونین Authentication رو مدیریت کنید.

چه امتیازی به این مقاله می دید؟
نویسنده محمد اسفندیاری
بسیار به طراحی وب علاقمندم و به سرعت در حال یادگیری تمام مباحث پیشرفته هستم و دوست دارم که به دیگران هم یاد بدهم.

نظرات کاربران

اولین دیدگاه این پست رو تو بنویس !

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :