-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
#527 회원 탈퇴 구현 #528
base: dev
Are you sure you want to change the base?
#527 회원 탈퇴 구현 #528
Conversation
|
||
const userDetail = await userModel.findOne( | ||
{ id: user.id }, | ||
{ _id: user.oid, withdraw: false }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
taxi-back/src/modules/auths/login.js
Line 4 in e541fc0
const getLoginInfo = (req) => { |
위 함수에서 user 객체를 내려줄때 user.oid를 내려주는걸로 보이는데,
통일성을 위해 _id로 변경하고 user._id를 사용하는게 좋지 않을까요?
const user = await userModel.findOne( | ||
{ _id: req.userOid, withdraw: false }, | ||
"_id" | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
탈퇴여부를 확인하는 의도인 것 같은데, user의 _id를 넣어서, _id를 반환받는 코드는 다소 비직관적으로 느껴질 수 있을 것 같아요.
isUserWithdraw 같은 별도의 인자로 관리하는게 좋지 않을까 싶네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oid만 필요한데도 탈퇴 여부를 확인하기 위해 userModel에 쿼리하는 코드가 생각보다 많이 있네요.. 어떻게 하는게 좋을지 고민이 필요할 것 같습니다
@@ -132,7 +132,9 @@ const getTicketLeaderboardHandler = async (req, res) => { | |||
); | |||
const leaderboard = await Promise.all( | |||
sortedUsers.slice(0, 20).map(async (user) => { | |||
const userInfo = await userModel.findOne({ _id: user.userId }).lean(); | |||
const userInfo = await userModel | |||
.findOne({ _id: user.userId, withdraw: false }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
혹시 나중에 코드볼때 헷갈릴 것 같아서
// user.userId는 userOid입니다.
이런 주석 하나만 달아주시면 좋을듯 합니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTV~
자주 헷갈려서 남기는 메모
|
비슷한 이유로 입장 후 탈퇴하면 닉네임이 안뜨는 문제도 있습니다. 이 문제는 프론트랑 같이 해결이 필요할듯 @jinhyeonkwon |
최근 두 코멘트를 통해 언급한 버그는 Chat Document에서 content에 userId가 저장되어서 발생한 문제였습니다. DB 마이그레이션 및 content에 userOid를 저장하도록 변경하는 것을 통해 해결하고자 합니다. |
Summary
It closes #527
회원 탈퇴를 구현합니다. 기존 User Schema에 존재하던 withdraw 필드를 활용해 Soft Delete 기반의 회원 탈퇴를 구현하였습니다. 추가로, 기존에 사용하던 userId는 SPARCS SSO에서 넘어오는 고유한 ID이기 때문에, 회원 탈퇴 후 재가입하는 경우를 적절히 처리하기 위해 불가피한 경우를 제외하면 userOid를 사용하도록 변경했습니다.
Further Work