2015-04-16 35 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个参数传递,并以编程方式验证它们。