2013-12-12 40 views
3

請建議,可以在沒有用戶標識的情況下發送推送通知?比方說,我們想發送推送消息給已下載我們的應用程序的所有用戶。或者由於安全原因,用戶ID不能存儲在數據庫中(或在應用程序中使用)。工作燈:無用戶標識的推送通知

+0

如果你想只發送一個通知給你的應用程序的所有用戶,你可以[在應用程序啓動時顯示通知](http://pic.dhe.ibm.com/infocenter /wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fadmin%2Ft_displaying_a_notification_message_on_app_startup.html)。只要確保你有[connectOnStartup](http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/topic/com.ibm.worklight.help.doc/devref/t_ConnectingToWorklightServer.html?resultof=%22 %63%6f%6e%6e%65%63%74%6f%6e%73%74%61%72%74%75%70%22%20)在您的應用中設置爲「true」。 – eabe

回答

2

無論如何,您需要一種方法來識別用戶。它會歸結爲你認爲是'userID'的東西。有一種方法可以在不使用永久用戶ID的情況下區分用戶。您可以使用持久cookie領域。如果您添加到您的authenticationConfig.xml文件:

 <realm name="PersistentCookie" loginModule="WeakDummy"> 
      <className>com.worklight.core.auth.ext.PersistentCookieAuthenticator</className> 
     </realm> 

然後基於永久性Cookie的唯一ID將用戶,當他們連接到工作燈服務器創建:

"PersistentCookie":{"userId":"6410a0f9-98fb-4940-a127-da940c5d7e16","attributes":{},"isUserAuthenticated":1,"displayName":"6410a0f9-98fb-4940-a127-da940c5d7e16"} 

沒有進一步的交互是用戶或開發人員需要的。只需將該類添加到authenticationConfig.xml就足以生成用戶標識。

您可以使用此cookie來訂閱推送通知的用戶。如果出於安全考慮,您希望不再有此用戶通過此persistentCookieID標識,那麼您可以簡單地清除應用程序上的cookie,併爲用戶生成一個新的ID。如果生成新的persistentCookieID,他們將需要重新訂閱推送通知。

+0

感謝您的建議。這看起來不錯,但必須在應用程序的每個重新開始時重新訂閱。 – AAhad

+0

那麼有辦法減少重新訂閱的數量。您可以將此永久Cookie ID保存在本地存儲中,並繼續使用它,並且只在必要時清除它。您可以重新生成並存儲一個新的,並且不綁定到單個用戶ID。 – jnortey

+0

請記住,從持久cookie身份驗證器生成的用戶ID是持久性的,因此您只需在cookie被清除時重新訂閱,而不是在每次應用程序重新啓動時重新訂閱。 – jnortey

0

您需要的訂閱列表發送的工作燈和適配器(服務器)端API推送通知讓所有的訂購

WL.Server.getUserNotificationSubscription(eventSource, userId);

因此,沒有用戶id,這是不可能發送推送通知。

我不確定安全問題,因爲userID只是用來登錄應用程序的用戶名。如果您的應用程序和事件源均具有securityTests,那麼隨着userId一起存儲訂閱將由Worklight自動處理。

+0

我可以理解並同意你的意見,但這是我客戶的要求。在應用程序中根本沒有登錄頁面。 – AAhad

0

從Worklight 6.2開始,您可以使用「廣播通知」功能向所有用戶(訂閱或未訂閱)發送通知。

欲瞭解更多信息,請參閱http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.dev.doc/devref/c_push_notif_broadcast.html

要發送的廣播通知,您可以使用WL.Server.sendMessage(的applicationID,notificationOptions)。更多信息可以在 http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.dev.doc/devref/c_send_push_notifications.html