我尝试使用Visual Studio Cordova插件在Cordova App中使用SignalR,并且需要能够将OAuth令牌传递给SignalR。
我已经实施了以下解决方案,通过Cookie传递令牌,这在桌面浏览器中运行良好 - 设置document.cookie =" BearerToken =" + authData.token +&#34 ;;路径= /&#34 ;;将身份验证令牌传递给cookie。
我的问题是,当我部署到Android设备时,令牌不再传递给SignalR
http://blog.marcinbudny.com/2014/05/authentication-with-signalr-and-oauth.html#.VSepESjF_0c
有人可以建议解决方案或解决方法吗?
由于
马克
答案 0 :(得分:0)
我也在使用CORS的Visual Studio + SignalR中使用Cordova。如果您在Android设备中运行index.html,则不再支持cookie,而是使用[内部存储]。
就我而言,我在网站上托管index.html,例如www.abc.com/index.html,所有用户都可以使用浏览器加载index.html,对于信号服务器,我把它放在www.bcd.com
但是,如果我从android设备运行index.html,index.html实际上放在android手机文件资产里面的www / index.html中,这意味着这个html的[host]是no更长的网络服务器,但文件,所以cookie不再有用。
在这种情况下,我在index.html中使用了一个全局变量,例如gloMobile,检查index.html是在web服务器上运行还是在手机中运行,如果我可以从http标头获取“http”,我设置gloMobile = true,这意味着用户从浏览器运行它,如果我没有从http标题中获取“http”,用户在手机中运行它,那么我会使用[INTERNAL STORGE]存储[cookies]。
在www.bcd.com的SignalR服务器中,我允许来自www。*。com的所有连接,但对于每个连接,我将登录用户ID和加密密码作为2个参数传递,并以编程方式自行验证。