-
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
Feat/#161: 알림 받을 수 있도록 기능 추가 & 마이페이지 디자인 개선 #164
Conversation
알림은 몇개..?
알림 허용 문제
|
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.
✅ LGTM! 알림 서비스 고생하셨습니다~
try { | ||
const registration = await navigator.serviceWorker.ready; | ||
const VAPID_PUBLIC_KEY = | ||
'BMTktqZlaL5Bqx7rR2h_fbqBsWROO4k2RnXxwbJXDsP99RSaihgNEkA3JT1iQVT2XRQMRHYMJUyDQS7_r8S5BMc'; |
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.
이 KEY는 뭔가욤?
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.
서버에서 보낸 알림이 인증된 서버에서 보냈는지 클라이언트의 public key 와 서버의 private key 로 확인할 때 쓰이는 key 에요
만약 인증된 서버에서 알림을 보낸게 아니라면 알림을 클라이언트에게 보내지 않도록 하기위해 사용하고 있어요
환경변수에 넣어서 관리하는 것이 좋지만 Vite, jest 에서 환경변수의 값을 에러없이 가져오기 힘들어서 일시적으로 키값을 노출시켰어요
그래도 비대칭키 특성 상 public key 값으로 private key 값을 유추하기 쉽지 않아 보안상의 큰 문제는 없을거란 생각이 들어요!
const storedSubscribe = localStorage.getItem('subscribe'); | ||
if (major && storedSubscribe) { | ||
http.delete(`${SERVER_URL}/api/subscription/major`, { | ||
data: { subscription: JSON.parse(storedSubscribe), major }, | ||
}); | ||
localStorage.removeItem('subscribe'); | ||
} |
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.
이 함수는 이미 선택된 전공이 있고, 수정할 경우를 처리하기 위한 함수가 맞나요~?
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.
네 만약 전공을 새로 바꾼다면 바뀐 전공을 구독하는게 아닌 이전 전공 구독을 취소하게 만들었어요
const subscription = await registration.pushManager.subscribe({ | ||
userVisibleOnly: true, | ||
applicationServerKey: urlBase64ToUint8Array(VAPID_PUBLIC_KEY), | ||
}); |
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.
학과 공지사항에 대한 알림서비스를 주려면, 사용자 기기정보와 그 사용자가 선택한 전공에 대한 정보가 필요한데 그러면 subscribe 함수 반환값(subscription)이 사용자 기기정보인가요??
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.
네 subscription이 사용자 기기정보와 사용자가 알림을 받을 수 있는 엔드포인트 값을 가지고있어요
🤠 개요
💫 설명
학교 공지사항 알림 & 학과 공지사항 알림
알림은 몇개..?
알림 허용 문제
알림 방법
📷 스크린샷 (Optional)