2016-08-23 90 views
0

我只想问什么是隐藏使用anugularJS敏感数据的最佳方式。AngularJS如何隐藏重要数据

我一个深化发展VOD(视频点播)的应用程序中,我要拍电影链接隐藏,而不是由用户访问。

{ "title": "movieTitle", "link": "www.some-provider-link.com/movie-link.mp4"} 

当我需要显示的视频,我把这个JSON在我的范围这样的:

$scope.movie = moviesFactory.getMovie().then(callbackOk, callbackNonOk); 

例如,我使用$ HTTP一个moviesFactory内得到后端此JSON

我的问题是,因为范围使用Chrome浏览器扩展,甚至angular.element(document.getElementById('anElementId')).scope() 每个人都可以访问我的范围和看到的链接是用户访问。

那么我做错了什么?我该如何隐藏这些数据?

+0

您是否将这些链接返回给未经认证的用户?如果是这样,为什么不仅在用户通过身份验证时才返回它们?您可以为已在服务器上解析的已认证用户生成临时链接。单页应用程序和身份验证确实需要与传统的服务器端渲染应用程序不同的思维方式。 –

+0

Offscourse,只有经过认证的用户才能看电影,我希望那些经过认证的用户无法看到源 –

回答

0

您不能直接通过这种方式,因为javascript 在客户端执行(并且您没有完全控制您提供给客户端的源)。

并分享(加密/模糊或不)你的完整文件的网址('www.some-provider-link.com/movie-link.mp4')这不是一个好主意,如果你担心的隐私这些文件。

您应该考虑包括某种身份验证(如tokens)并在您的服务器中创建一个API,以便在用户通过身份验证时为您提供所需的所有数据(如.mp4文件)作为字节流。

+0

我已经在使用令牌认证。只有经过认证的用户才能观看电影,我希望那些经过认证的用户不能看到我的链接,然后直接从提供商网站下载视频。你是指什么字节流? –

+0

我的意思是说,你的服务器可能作为你的提供者链接的桥梁:用户A想要'kitty meow.mp4',向你的服务器发出api请求,要求提供kitty meow.mp4,你的服务器从提供者处获取文件并返回到你的客户端(作为一个字节流)。这就是我能想到的。 – Luxor001