공부 진행 상황
Algorithm
X기술적 고민
[백엔드 팀 공부 계획 - 진행 상황]
완료. 데모용 임시방편으로 구글로그인만 가능한 상태였기 때문에 일반 로그인/회원가입 코드를 json형식으로 주고받도록 구현하였다.
이미 메타버스가 구현되어있는 우리 코드에 새로운 로그인 코드를 껴넣는게 생각만큼쉽지 않았다. 로그인이면 기본 중의 기본이니 간단할거라 생각해 책에 나와있는 로그인 코드를 보며 해당 내용만 잘 집어넣으면 될 줄 알았는데.. 역시 실무는 마냥 쉽지 않다는 걸 느꼈다 😅
프론트로 데이터만 넘겨주면 됐기 때문에 json으로 전달하는 코드를 작성했고, 직접 웹화면에서 테스트하는 롤이 아니었기에 로그인, 회원가입 등 기능 하나 하나마다 포스트맨 사이트에서 직접 request를 만들어 send해보면서 우리 DB에 email, nickname, password, accessToken, refreshToken이 잘 들어가는지 테스트해가며 구현을 완료했다!
책으로 공부 → bcrypt, JWT사용 (+참고 블로그)
[추가할 것]
export const user = {
saveUserInfo: (nickname, character) =>
axios.post("/users/update/profile", { nickname, character }),
getUserInfo: () => axios.get("/users/get/userinfo"),
};
// BACK users.js
/* GET users listing. */
router.get("/get/userinfo", authUser, async function (req, res) {
try {
//여기의 버튼은 회원가입이 안되어있으면 못들어오는 페이지 => email check 안해도 될 듯함
if (req.user) {
res.json({ result: req.user });
} else {
res.json({ msg: "토큰이 만료되었습니다." });
}
} catch (e) {
console.log(e);
}
});
Algorithm
완전탐색(진행중)로그인화면 DB실제 입력되어야하는데(우리는 포스트맨으로 체크완료)
토큰은 구글 로그인일 때만 가져옴 !
닉네임 db에서 받아와야하지!
router.post(‘/room’, async function(req, res) {
const findUser = await Aim_user_info.findOne({
where: {
email,
}
})
userNickname = findUser.nickname
“Anon” 연결 코드 다 바꾸기
Algorithm
// app.js
socket.on("user_call", async ({ caller, callee }) => {
const user_caller = charMap[caller];
const user_callee = charMap[callee];
console.log("이것이 caller의 닉네임이다", user_caller.nickname);
let guest_gN = user_callee.groupNumber;
let host_gN = user_caller.groupNumber;
console.log(guest_gN, host_gN);
if (guest_gN) { // 둘 중 한 명 Group 있을 때
if (!host_gN) {
await joinGroup(guest_gN, user_caller.socket, user_callee.nickname);
user_caller.groupNumber = guest_gN;
console.log(user_caller.groupNumber, user_callee.groupNumber);
} else { // guest_gN과 host_gN이 다를 경우를 추가
if (guest_gN != host_gN) {
console.log("host, guest의 그룹 번호가 다릅니다.");
if (guest_gN > host_gN) {
await removeUser(caller);
joinGroup(guest_gN, user_caller.socket, user_callee.nickname);
user_caller.groupName = guest_gN;
} else {
await removeUser(callee);
joinGroup(host_gN, user_callee.socket, user.caller.nickname);
user_callee.groupName = host_gN;
}
} else {
console.log("host, guest의 그룹 번호가 같습니다.");
}
}
} else if (!host_gN) { // 둘 다 Group 없을 때 (guest X && host X)
user_caller.groupNumber = await makeGroup(user_caller.socket);
console.log("Caller가 만든 그룹 번호 :", user_caller.groupNumber);
} else {
// guest X && host O
console.log("else일 때 host_gN: ", host_gN, "guest_gN: ", guest_gN);
}
});