이 Keeping the Registration State in Sync에서 언급 한 바와 같이 :
등록 토큰의 잠재적 인 악성 재사용에서 클라이언트 응용 프로그램 및 응용 프로그램 서버를 보호하기 위해, 당신은 주기적으로 서버에서 토큰 새로 고침을 시작한다. GCM 등록 토큰 새로 고침이 서버 측에서 시작되면 클라이언트 응용 프로그램은 GCM 등록 클라이언트/서버 핸드 셰이크를 사용하여 tokenRefreshed 메시지을 처리해야합니다. 시스템이 토큰이 필요한 것으로 판단 할 때 등록 토큰이 새로왔다 경우를 처리하기 위해
에서, GGLInstanceIDDelegate
프로토콜이 호출되는 onTokenRefresh
방법을 선언 iOS 용
, 그것은 것을 Handle refreshed tokens에서 언급 된 상쾌하게하기.
샘플 코드 :
- 가
GGLInstanceIDDelegate
프로토콜을 채택하는 클래스를 선언; - (void)onTokenRefresh {
// A rotation of the registration tokens is happening, so the app needs to request a new token.
NSLog(@"The GCM registration token needs to be changed.");
[[GGLInstanceID sharedInstance] tokenWithAuthorizedEntity:_gcmSenderID
scope:kGGLInstanceIDScopeGCM
options:_registrationOptions
handler:_registrationHandler];
}
AppDelegate.m
는 또한, 토큰 처리하는 클라이언트 응용 프로그램이 있어야 갱신
- delegate 속성을 사용하여
GGLInstanceIDConfig
에서 해당 클래스를 델리게이트로 설정합니다.
해당 문서에서 도움이 될만한 추가 참조 자료를 찾을 수 있습니다.
이외에도이 SO 게시물 - Why re-register to gcm when application gets updated도 토큰 새로 고침이 필요한 이유를 설명했습니다.
답해 주셔서 감사합니다. 이해하시기 바랍니다. 앱이 업데이트되면 onTokenRefresh가 실행됩니까? 아니면 서버 측에서 발행 한 주기적 새로 고침으로 상황이 완화 될 것이라고 제안 하시겠습니까? –