2017-11-17 3 views
2

로그인하는 동안 사용자로부터 알림 권한을 요청하는 웹 사이트가 있습니다. 그/그녀가 권한 (아래 코드 참조)크롬에서 알림 사용이 거부되었습니다.

//Checks if user browsers notification is "Allowed", if "denied", logs out user 
if(Notification.permission == 'denied') { 
    removeAllCookies($cookies); 
    $location.path("/login"); 
} 

그 코드는 처음에는 좋아 보이지만 단지 오늘이 고장 시작을 거부 할 때이 코드가 자동으로 로그 아웃 사용자가 있습니다. 모든 새로운 사용자는 아직 권한을 구성하지 않았더라도 자동 로그 아웃합니다.

주소 표시 줄의 왼쪽에있는 favicon에서 수동으로 권한을 검사하려고 시도했는데 여전히 ask(default)으로 설정되어 있음을 알 수 있습니다. 나 또한 수동으로 AllowNotification.permission 함수를 설정하려고 여전히 거부 반환합니다. 이 문제의 원인은 무엇입니까? 내 PC에서는 괜찮지 만 다른 모든 사용자에게는 자동 차단됩니다.

편집 : 이제 막 PC에서 이미 동일한 문제가 발생합니다. 내 알림 권한은 허용되지만 Notification.permission은 항상 denied을 반환합니다. 나는 그것을 기록한 콘솔이며 정말 거부 반환합니다. 누군가?

+0

'localhost'에서는 작동하지만 다른 사이트에서는 작동하지 않는다는 것을 의미합니까? –

+0

아니요. 내 PC에서 작동하지만 웹 사이트에 액세스하는 다른 PC (들)에서 자동 로그 아웃 –

답변

0

iframe 안에 권한을로드하고 있습니까?

+0

선생님, 저는 angularjs를 사용하고 있습니다. 기본적으로 코드가 실행되는 페이지를로드 할 때 기본적으로 내 페이지의 컨트롤러에서'Notification.permission'을 실행합니다. –

0
는하지만 가치가 무엇인지에 대한, 거기있어

이상한 비즈니스 로직 ...

몇 가지 규정 크롬 풋있다 iframe이 내 요구한다면, Notification.permission가 거부 반환하는 크롬 변화처럼 보인다 in place :

1) HTTPS 또는 localhost를 사용해야합니다. 당신이하지 않은 경우 당신은 서비스 노동자를 등록하면 자동으로 내가 실제로

문서 주위의 공지를 읽을 수 있는지 확인) 모바일 크롬에 필요한 것 같아요 (

2) 더 안정적으로 작동 내 경험에 권한을 거부합니다 API를 철저히 배우십시오. MDN은 훌륭한 리소스입니다. 당신을 보장한다 도움이 될 다른

뭔가 알림 로직이 requestPermission 약속에 싸여 있습니다

Notification.requestPermission().then(function(permission) { 
//if permission == 'denied' // logout 
} 

이 어떤 도움이되는지 알려주세요.