Files
modstagram-back/middlewares/isHalfRegister.js
payacom d4ebc20aa8 reels
2026-10-01 21:12:05 +03:30

65 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const jwt = require('jsonwebtoken')
const { resolveActingUser } = require('../utils/subUserAuth')
module.exports = async (req, res, next) => {
try {
if (!('authorization' in req.headers)) {
return res.status(401).send({
status: 'error',
code: 401,
message: 'You are not authorized!'
})
}
const token = req.header('Authorization').split(' ')[1]
if (!token) return res.status(401).send('Access Denied')
const decodedToken = jwt.verify(token, process.env.APP_SECRET)
if (!decodedToken) {
return res.status(401).send({
status: 'error',
code: 401,
message: 'Your token is not valid!'
})
}
const resolved = await resolveActingUser(decodedToken.id)
if (resolved.error === 'SUB_USER_DISABLED') {
return res.status(401).send({
status: 'error',
code: 401,
message: 'این حساب کاربری غیرفعال شده است'
})
}
if (resolved.error) {
return res.status(401).send({
status: 'error',
code: 401,
message: 'Your token is not valid!'
})
}
const rawUser = resolved.rawUser
if (!rawUser.user_name ||
!rawUser.first_name ||
!rawUser.last_name ||
(!rawUser.is_sub_user && !rawUser.user_type) ||
!rawUser.password) {
return res.status(403).send({
status: 'error',
code: 403,
message: 'لطفا از بخش تنظیمات، ثبت نام خود را کامل کنید',
type: 'not_register'
})
}
req.user = resolved.user // کاربر را به درخواست اضافه کنید تا در سایر middleware ها و کنترلرها استفاده شود.
req.actingSubUser = resolved.actingSubUser
next()
} catch (error) {
console.error('not_register middleware:', error)
res.status(500).send({
status: 'error',
code: 500,
message: 'Server error'
})
}
}