2015-04-16 34 views
0

我想在使用Visual Studio Cordova插件的Cordova應用程序中使用SignalR,並且需要能夠將OAuth令牌傳遞到SignalR。Phonegap/SignalR - 設置document.cookie

我已經實現了下面的解決方案,通過cookie傳遞令牌,這在桌面瀏覽器中正常工作 - 設置document.cookie =「BearerToken =」+ authData.token +「; path = /」;將auth令牌傳遞給cookie。

我的問題是,當我部署到Android設備令牌不再傳遞到SignalR

http://blog.marcinbudny.com/2014/05/authentication-with-signalr-and-oauth.html#.VSepESjF_0c

任何人都可以提出一個解決方案或解決?

感謝

馬克

回答

0

我還使用科爾多瓦在Visual Studio + SignalR與CORS。如果您在android設備上運行index.html,則不再支持該cookie,而是使用[內部存儲]。

就我而言,我將index.html託管在一個網站上,例如, www.abc.com/index.html,所有的用戶都可以使用瀏覽器來加載的index.html,對於signalr服務器,我把它放在www.bcd.com

但是,如果我運行的index.html從Android設備中的index.html實際上是放置在WWW/index.html的Android手機文件裏面的資產,這意味着這個網站的[主持人]不再是一個Web服務器,但文件中,這樣的餅乾不再有用。

在這種情況下,我在我的index.html中使用了一個全局變量,例如gloMobile,以檢查的index.html是在Web服務器上運行或者在手機上運行,​​如果我可以從HTTP頭獲得「HTTP」,我設置gloMobile = TRUE,這意味着用戶從瀏覽器中運行,otherwize如果我不從HTTP頭獲得「HTTP」,用戶手機中運行它,然後我用的是[內部STORGE]存儲[餅乾]。

在www.bcd.com的SignalR服務器中,我允許來自www。*。com的所有連接,但對於每個連接,我都將登錄用戶標識和加密密碼作爲2個參數傳遞,並以編程方式驗證它們。