로그아웃 시 모든 푸시 구독을 제거하지 마세요

또한 사용자가 로그아웃하면 모든 푸시 구독이 삭제되는 것으로 보입니다. 따라서 사용자가 여러 기기(스마트폰, 브라우저, 태블릿)에 로그인된 상태에서 한 기기/세션에서 로그아웃하면, 해당 기기의 푸시 구독이 삭제되어 다른 기기에서 알림을 받을 수 없게 됩니다.

이것은 갱신 시 어떤 구독을 대체해야 하는지, 그리고 로그아웃 시 어떤 구독을 삭제해야 하는지를 파악하는 것과 관련이 있으므로 언급합니다.

6개의 좋아요

음, 오늘 메타에서 로그아웃되었다가 다시 로그인했는데, 그 후에 게시글 푸시 알림이 떴어요… 사용자 주도 로그인 코드 경로에서만 그런 건 아닌가요? :thinking:

6개의 좋아요

사용자가 포럼에 다시 방문하거나 로그인하면 브라우저 푸시 구독이 다시 전송되고 재생성됩니다. 하지만 로그아웃한 경우, 해당 구독은 삭제되며 사용자가 해당 기기에서 포럼에 접속할 때까지 푸시 알림이 전달되지 않습니다.

이는 사용자가 로그인한 후 푸시 알림을 받았다고 언급한 내용과 모순되지 않습니다.

코드 참조:

6개의 좋아요

아, 내가 의심했던 바로 그 문제였군

좋은 발견이야! 이건 꼭 수정해야 해!

문제는 현재 특정 구독이 어떤 기기에 대해 존재하는지 저장하지 않고 있다는 거야…

8개의 좋아요

Push API에는 푸시 구독을 무효화하는 unsubscribe 함수가 있습니다:

로그아웃 시 이 함수를(클라이언트 측에서) 호출하면 해당 구독만 서버에서 무효화되고 다른 구독에는 영향을 미치지 않습니다.

사실 클라이언트에는 이미 “라이브 알림” 설정에서 이 작업을 수행하는 unsubscribePushNotification 함수가 있습니다. 아마도 라이브 알림이 활성화된 경우 로그아웃 시 클라이언트 측에서 이 함수를 호출하는 것이 해결책이 될 수 있습니다. 서버에서 단순히 삭제하는 대신 클라이언트 측 구독 키를 폐기하는 것이 좋은 관행일 것입니다.

2개의 좋아요

따라서 수정은 두 부분으로 나눌 수 있습니다:

  1. 서버 측 정리 코드 삭제
  2. 클라이언트 측에서 구독을 취소하도록 하는 새 코드 추가
5개의 좋아요

완료됨

1개의 좋아요

이 주제는 4일 후 자동으로 닫혔습니다. 더 이상 새 답글을 작성할 수 없습니다.