67 lines
2.6 KiB
JavaScript
67 lines
2.6 KiB
JavaScript
const passport = require('passport');
|
|
const local = require('./localStrategy');
|
|
const axios = require('axios');
|
|
const pool = require('../db/pool.js');
|
|
|
|
module.exports = () =>{
|
|
passport.serializeUser((user, done)=>{
|
|
done(null, user.user_id);
|
|
});
|
|
|
|
passport.deserializeUser(async (id, done)=>{
|
|
let client;
|
|
try {
|
|
client = await pool.connect();
|
|
const localQuery = `SELECT * FROM ver4.tb_user WHERE user_id ILIKE $1 AND (is_resigned = FALSE OR is_resigned IS NULL)`;
|
|
const localRes = await client.query(localQuery, [id]);
|
|
if (localRes.rows.length > 0) {
|
|
const user = localRes.rows[0];
|
|
const formattedUser = {
|
|
user_id: user.user_id,
|
|
user_nm: user.user_nm,
|
|
group: user.group,
|
|
company: user.company || '한맥기술',
|
|
dept: user.dept || '개발본부',
|
|
position: user.position || '부장',
|
|
permission: (user.group === 'super' || user.group === 'dev' || user.group === 'USER_GROUP_super') ? 1535 : null,
|
|
bookmark: user.bookmark || ''
|
|
};
|
|
return done(null, formattedUser);
|
|
}
|
|
} catch (dbErr) {
|
|
console.error('🔒 [passport/index.js] Local DB deserialize check error:', dbErr);
|
|
} finally {
|
|
if (client) {
|
|
client.release();
|
|
}
|
|
}
|
|
|
|
try{
|
|
let res = await axios.post(`http://gsim.hanmaceng.co.kr:5151/login/deserialize`,{user_id:id});
|
|
// let res = await axios.post(`https://pm-auth.hmac.kr/login/deserialize`,{user_id:id});
|
|
if(res.data.user){
|
|
if(!res.data.user.permission||res.data.user.permission == null){
|
|
switch(res.data.user.group){
|
|
case 'master':
|
|
case 'dev':
|
|
res.data.user.permission = 1535;
|
|
break;
|
|
case 'super':
|
|
res.data.user.permission = 815;
|
|
break;
|
|
default:
|
|
res.data.user.permission = null;
|
|
break;
|
|
}
|
|
}
|
|
done(null, res.data.user);
|
|
}else{
|
|
done(null, undefined, '🔒 [passport/index.js] passport_deserializeUser_error');
|
|
}
|
|
}catch(err){
|
|
console.error('🔒 [passport/index.js] passport_deserializeUser_error :', err);
|
|
done(err);
|
|
}
|
|
})
|
|
local();
|
|
} |