اذهب إلى المحتوى

السؤال

نشر (معدل)

أنا استخدم express jwt وانا عندى نوعين من المستخدمين وهما admin و client واريد ان اضيف role ثالث اسميه مثلا vendor  ويكون له بعض الصلاحيات المتوسطة  كيف أستخدم isRevocked لفعل هذا .. هذا هو كودى 

 

const jwt = require("express-jwt");

function auth() {
  return jwt({
    secret: process.env.SECRET,
    algorithms: ["HS256"],
    isRevoked: isRevoked,
  }).unless({
    path: [
      //   { url: "/api/v1/products", methods: ["GET", "OPTIONS"] },
      // { url: /\/api\/v1\/us(.*)/, methods: ["GET", "OPTIONS"] },
      "/api/v1/users/login",
    ],
  });
}

async function isRevoked(req, payload, done) {
  if (payload.userRole === "admin") {
    done();
  }
  if (payload.userRole === "client") {
    console.log(payload.userRole);
    done(null, true);
  }
}
module.exports = auth;

 

تم التعديل في بواسطة أحمد ابراهيم عبد الله

Recommended Posts

  • 1
نشر

الخاصية isRevoked تستخدم لتحديد ما إذا كانت ال token الحالية ملغاة أم لا (صاحب الحساب سحب بعض الصلاحيات - قام بتسجيل خروج من الأجهزة الأخرى - الخ...), عبر استدعاء التابع done بداخلها وتمرير المعامل الثاني ك true

اذا كنت تريد تحديد ال token للدور الجديد vendor كملغاة مثل ما تفعل بالدور client يمكنك تضمينه كالتالي: 

async function isRevoked(req, payload, done) {
  if (payload.userRole === "admin") {
    return done();
  }
  if (payload.userRole === "client") {
    return done(null, true);
  }
  if (payload.userRole === "vendor") {
    return done(null, true);
  }
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...