我有一个客户端的角度-js应用程序。我有一个服务器端的nodejs。客户端和服务器端应用程序位于不同的域上。客户端使用API获取或发布一些数据。另外,客户端需要从服务器端获取图像,并在浏览器中显示它们。
我使用护照nodejs模块进行身份验证。我不知道哪种认证策略更适合我。我认为有两种类型的认证策略:基于令牌的认证策略和基于cookie的身份验证策略。我认为这两种类型对我来说都是无用的:
<img>
标记中发送标头。采用的解决办法是什么?
发布于 2015-12-05 15:54:37
理解web应用程序和web服务之间的区别是非常重要的。web应用程序提供标记、JavaScript、CSS和图像文件,并且经常使用基于cookie的身份验证(但可以使用任何其他隐式认证机制)。浏览器提出的任何请求都会自动进行身份验证。
另一方面,Web服务通常使用承载令牌身份验证。当浏览器、fat客户端或移动设备上的客户端与API通信时,它会在HTTP请求的Authorization
头中发送令牌。报头必须显式地附加到执行HTTP请求的JavaScript或本机代码中的请求。
在单页应用程序(SPA)中,web应用程序丢失,并且在不进行身份验证的情况下从浏览器中提供标记、JavaScript、CSS和图像。只有对web服务的请求进行身份验证,通常使用JWT令牌。
在这种情况下,如果只希望授权用户能够下载图像和其他文件,则应考虑构建web应用程序。使用类似或OpenID连接的安全协议对用户进行身份验证。选择一个既支持web应用程序的OpenID连接,又支持web服务的OAuth2的授权服务器。
https://stackoverflow.com/questions/34098031
复制