Web API 를 호출하여 알림을 주는 것
Notification.requestPermission().then((permission) => {
if (permission === 'granted') {
console.log(Notification.permission);
} else {
console.log(Notification.permission);
}
socket.on('notice_message', (msg) => {
if (Notification.permission === 'granted') {
const notification = new Notification('새 메시지', {
body: msg,
});
notification.onclick = () => {
window.location.href = `/public/views/chat.html`;
notification.close();
};
}
});
권한 설정이 허용되면 이러한 이벤트로 알림을 띄울 수 있다.
문제점
Firebase의 FCM 서버를 이용하면 안드로이드환경과 오프라인 환경에서도 푸시알림이 가능하다...
JWT(Jason Web Token), Refresh Token, 그리고 Access Token은 웹 애플리케이션 및 API 보안에서 중요한 역할을 하는 토큰 기반의 인증 및 권한 부여 시스템의 핵심 구성 요소입니다.
간단한 시나리오로 설명하면, 사용자가 로그인하면 서버는 Access Token과 함께 Refresh Token도 발급합니다. Access Token은 짧은 유효기간을 가지며 API 요청에 사용됩니다. 유효기간이 만료되면 Refresh Token을 사용하여 새로운 Access Token을 발급받을 수 있습니다. 이렇게 하면 사용자는 로그인 상태를 지속할 수 있고, Access Token이 유출되어도 긴 시간 동안 악용될 가능성을 줄일 수 있습니다.
OAuth(Open Authorization)는 인터넷 사용자나 제한된 리소스에 대한 다른 웹 서비스나 애플리케이션의 접근을 위한 개방형 표준 프로토콜입니다. OAuth는 사용자 데이터에 대한 접근 권한을 안전하게 제어하기 위한 프레임워크로, 다른 웹 서비스나 애플리케이션에서 사용자의 인증 정보를 공유하지 않고도 접근 권한을 부여할 수 있게 해줍니다.
OAuth의 주요 구성 요소와 동작 방식은 다음과 같습니다:
Resource Owner (사용자): 자신의 데이터에 대한 접근을 다른 애플리케이션에 부여하려는 사용자를 나타냅니다.
Client (애플리케이션): OAuth를 사용하여 사용자의 데이터에 접근하려는 웹 서비스나 애플리케이션을 나타냅니다.
Authorization Server (인증 서버): 사용자 인증 및 권한 부여 프로세스를 관리하는 서버입니다. 사용자가 리소스에 대한 액세스 권한을 허용하면 인증 서버가 클라이언트에게 액세스 토큰을 제공합니다.
Resource Server (리소스 서버): 사용자의 데이터나 보호된 리소스에 접근을 제공하는 서버를 나타냅니다. 이 서버는 액세스 토큰을 검증하고, 권한이 있는 경우 클라이언트에게 리소스를 제공합니다.
OAuth의 동작 방식은 다음과 같습니다:
인가 코드 부여(Authorization Code Grant):
암시적 부여(Implicit Grant):
클라이언트 자격 증명(Client Credentials):
OAuth는 인증 및 권한 부여를 위한 중요한 보안 기술 중 하나이며, 웹 및 모바일 애플리케이션에서 사용자 데이터를 안전하게 관리하고 외부 애플리케이션과 연동하는 데 유용합니다. OAuth 2.0은 현재 가장 널리 사용되는 버전이며, OAuth 1.0a와 비교하여 단순하고 확장 가능한 프로토콜로서 다양한 사용 사례에 적용됩니다.