wafflestudio / snutt-timetable

SNUTT timetable service
14 stars 0 forks source link

카톡 친구추가 API #242

Closed asp345 closed 2 months ago

asp345 commented 3 months ago

GET /friends/generate-link : 친구 추가 링크를 위한 토큰 생성 POST /friends/accept-link/{requestToken} : 값을 받아서 링크로 친구 신청 수락 랜덤한 값 생성해서 redis에 userId와 같이 저장하는 방식으로 만들었고 친구추가 정상적으로 이루어지는거 확인했습니다

asp345 commented 2 months ago

다시 생각해보니 token으로 stateless 하게 관리하는게 나을것 같아 더 수정해보겠습니다

-> 수정 완료했습니다

Hank-Choi commented 2 months ago

또 branch 정리해주시면 좋을 것 같아요

git rebase --onto develop HEAD~7
git rebase --skip # 다빈커밋 무시
git push -f

해서 찬영님 커밋만 남기고 force push 한번 해주세요

asp345 commented 2 months ago

ttl은 값 바꿔서 테스트하던걸 실수로 올렸는데 2주로 해두겠습니다

토큰 길이는 원래 190자에서 불필요한 부분 제거하니 135자 정도 나와요 링크를 더 짧게 만들어야 하면 jwt에 닉네임을 쓴다고 해도 바이트 수는 비슷해서 말씀하신 대로 redis를 쓰는 방법이 좋을 것 같아요

보안은 id를 숨기는 것보단 본인이 발급한 링크가 맞는지 검증하는 거(userId 안다고 아무나 친추 못하게)랑 일정 시간 지나면 링크 만료되는 정도가 필요할 것 같아서 jwt를 사용했습니다

asp345 commented 2 months ago

말씀하신 부분 반영해서 랜덤한 값 만들어서 redis에 이에 대한 userId를 저장하게 바꾸었습니다.

그런데 저희 쓰는 elasticache가 노드가 꺼지면 저장이 안되는 것 같은데 안정성이 괜찮을지 궁금합니다 그리고 슬랙에 올렸던 firebase 동적 링크 서비스 종료 관련한 것도 당장은 아니지만 논의해봐야 할거 같아요

Hank-Choi commented 2 months ago

"friend-link:" prefix가 여러번 나오는데요 redis 확장성, prefix 겹치는거 방지, 오타 방지 용도로 RedisPrefix enum 같은거 만들어서 관리하면 베스트일듯 해요 머지했으니 일단 나중에 생각나면 반영하겠습니다 아니면 커밋 날려주세요