أداة Sumor Cloud.
المزيد من التوثيق
طبقة وسيط الرمز لـ ExpressJS.
npm i @sumor/token-middleware --save
يتطلب إصدار Node.JS 18.x أو أعلى
نظرًا لأن هذه الحزمة مكتوبة باستخدام نموذج ES،
يرجى تغيير الرمز التالي في ملف package.json
الخاص بك:
{
"type": "module"
}
import express from 'express'
import tokenMiddleware from '@sumor/token-middleware'
const app = express()
app.use(tokenMiddleware)
// تحميل الرمز
app.use(async (req, res, next) => {
const tokenId = req.token.id
const tokenInfo = await fetchToken(tokenId)
req.token.user = tokenInfo.user
req.token.data = tokenInfo.data
req.token.permission = tokenInfo.permission
next()
})
// تعيين الرمز
app.get('/login', async (req, res) => {
const username = req.query.username
const password = req.query.password
req.token.id = await createToken(username, password)
// سيتم إضافة الرمز تلقائيًا إلى رأس الاستجابة كعلامة تعريف ملف تعريف الارتباط 't'
res.send('تسجيل الدخول ناجح')
})
// استخدام الرمز
app.get('/api', (req, res) => {
// التحقق من الصلاحية
req.token.check('AUTH1')
res.send('مرحبًا بالعالم')
})
// الحصول على الصلاحية
req.token.permission = {
AUTH1: ['READ', 'WRITE'],
AUTH2: ['READ']
}
const hasAuth1 = req.token.has('AUTH1') // صحيح
const hasAuth2 = req.token.has('AUTH2') // صحيح
const hasAuth3 = req.token.has('AUTH3') // خطأ
const hasAuth1Read = req.token.has('AUTH1', 'READ') // صحيح
const hasAuth1Write = req.token.has('AUTH1', 'WRITE') // صحيح
const hasAuth2Read = req.token.has('AUTH2', 'READ') // صحيح
const hasAuth2Write = req.token.has('AUTH2', 'WRITE') // خطأ
// التحقق من الصلاحية
req.token.check('AUTH1') // ناجح
req.token.check('AUTH2') // ناجح
req.token.check('AUTH3') // يقوم بإلقاء خطأ PERMISSION_DENIED Permission denied: AUTH3
req.token.check('AUTH1', 'READ') // ناجح
req.token.check('AUTH1', 'WRITE') // ناجح
req.token.check('AUTH2', 'READ') // ناجح
req.token.check('AUTH2', 'WRITE') // يقوم بإلقاء خطأ PERMISSION_DENIED Permission denied: AUTH2=WRITE