0

我正在使用this tutorial作爲指導從我的後端實施向Azure通知中心的註冊。我的應用程序需要驗證,但用戶可以註銷並使用另一個帳戶重新登錄。 RegistrationId是否應該基於獨特的設備或用戶和設備的組合?換句話說,我應該在每次登出時清除RegistrationId嗎?如果用戶註銷時,以其他用戶身份重新登錄,但以原始用戶身份重新登錄,是否應創建新的RegistrationId或仍然使用原始用戶?是每個設備的RegistrationId?

回答

2

GCM documentation for registering client apps狀態如下:

開發人員應從未註銷客戶端應用程序作爲用於登出或 一種機制,用於在用戶之間切換,其原因如下:

  • 一種登記令牌ISN與特定登錄的用戶相關聯。如果客戶端應用程序取消註冊然後重新註冊,則應用程序可以接收相同的註冊令牌或不同的註冊令牌。
  • 取消註冊和重新註冊每個可能需要長達五分鐘的時間纔會傳播到 。在此期間,由於 未註冊狀態,郵件可能會被拒絕,並且郵件可能會轉到錯誤的用戶。

爲了確保郵件到目標用戶:

  • 應用服務器可以維持目前的用戶和 註冊標記之間的映射。
  • 然後客戶端應用程序可以檢查以確保它收到的 消息與登錄用戶匹配。

這也適用於其他的推送通知服務,例如iOS版。

推送通知服務註冊在一臺設備上標識特定的應用程序。

使用Azure通知中心,您可以在單個設備上爲特定應用程序在技術上擁有多個Azure通知HUb註冊,甚至可以在登錄和註銷時註冊和取消註冊(僅在Azure通知中心,而不是在特定於平臺的推送通知系統),但是這將是容易出錯的,有一個更好的辦法:

  • 只要你希望能夠接收推送通知,而只能註銷,如果你想註冊您在Azure的通知集線器應用一般不要接收它們。其實你可以在應用程序啓動時註冊並且永不註銷。
  • 如果用戶登錄,請將帶有用戶標識(例如「user:123」)的標籤添加到註冊中,如果他註銷,請再次刪除該標籤。
  • 這樣,您可以使用標籤來尋址某個用戶登錄的設備,請參閱Azure Notification Hubs Routing and Tag Expressions

修改標籤也在the tutorial you linked中描述。

相關問題