초기 PM 소스 전체 업로드
This commit is contained in:
67
passport/index.js
Normal file
67
passport/index.js
Normal file
@@ -0,0 +1,67 @@
|
||||
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();
|
||||
}
|
||||
Reference in New Issue
Block a user