我有一个客户端anger-js应用程序。我有一个服务器端nodejs应用程序接口。客户端和服务器端应用程序位于不同的域上。客户端使用API获取或发布一些数据。客户端还需要从服务器端获取图像并在浏览器中显示它们。
我使用护照nodejs模块进行身份验证。我不知道哪种身份验证策略更适合我。我认为有两种类型的身份验证策略:基于令牌的和基于cookie的。我认为这两种类型在我的情况下都没用:
> < li>
如果我使用基于令牌的策略,那么我应该在发送给API的每个请求中发送带有令牌的认证头。我可以在AJAX请求中发送标题,但是如果我想显示位于服务器端的图像,我会遇到一个问题。因为浏览器不会发送< code >中的标头
如果我使用 cookie,那么我对图像没有问题。但是我对 AJAX 请求有问题。因为会话 Cookie 存储在服务器端应用程序的域中。如果我从客户端域发送 AJAX 请求,那么我应该在每个请求中发送 cookie。我使用 XmlHttpRequest for AJAX,我应该使用 withCredentials 选项来发送 cookie。但在跨域请求中,浏览器将在每个 AJAX 请求之前发送预检 (OPTION) 请求。浏览器不会发送带有选项请求的 cookie。这对我来说是一个问题,因为如果服务器端 API 未获得授权,则无法对 OPTION 请求做出正确的响应。
采用的解决方案是什么?
了解 Web 应用程序和 Web 服务之间的区别非常重要。Web应用程序提供标记,JavaScript,CSS和图像文件,并且通常使用基于cookie的身份验证(但可以使用任何其他隐式身份验证机制)。浏览器发出的任何请求都会自动进行身份验证。
另一方面,Web 服务通常使用持有者令牌身份验证。当浏览器、胖客户端或移动设备上的客户端与 API 通信时,它会在 HTTP 请求的授权
标头中发送令牌。标头必须显式附加到执行 HTTP 请求的 JavaScript 或本机代码中的请求。
在单页应用程序 (SPA) 中,Web 应用程序丢失,标记、JavaScript、CSS 和图像无需身份验证即可从浏览器提供。仅对 Web 服务的请求进行身份验证,通常使用 JWT 令牌。
在您的情况下,如果您希望只有授权用户才能下载图像和其他文件,则应考虑构建 Web 应用程序。使用安全协议(如 OpenID Connect)对用户进行身份验证。选择同时支持 Web 应用程序的 OpenID Connect 和 Web 服务的 OAuth2 的授权服务器。
问题内容: 我正在尝试决定要选择哪种mime类型来返回mp3数据(由php提供) 根据此mime类型列表:http : //www.webmaster-toolkit.com/mime-types.shtml 这些之间有什么区别,我应该使用哪个? 问题答案: 最好的选择是使用RFC定义的 mime-type 。
存在两个java api引用: > http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html http://docs.oracle.com/javase/7/docs/technotes/guides/security/certpath/CertPathProgGuide.html 在
我在域< code > client-domain . example 上有一个客户端应用程序,在域< code > server-domain . example 上有一个服务器端应用程序。服务器端有一个API。客户端应用程序向服务器端应用程序发送AJAX请求。我使用基于令牌的认证,所以客户端应用程序在每个AJAX请求的头中发送令牌,例如:“Authorization:Bearer { some
在azure active directory文档中,它指出: 我使用passport和passport-azure-ad以及来验证作为中间件的accessToken。如果传递带有授权承载标头的,则会收到一个错误。如果我传递,则如果我在承载策略配置中设置了,则会收到。 首先,我想知道哪一个令牌是要使用的?两者都是有效的jwt令牌(https://jwt.ms/),但它们包含不同的字段。我想现在id
我有一个需要以两种不同方式保护的API: 1) 对除1以外的所有请求URL使用JWT,该URL需要使用基本身份验证进行保护 2) 一个url的基本身份验证。 我已经为JWT和Basic Auth设置了安全配置。我的问题是,当我使用有效的用户名和密码请求基本的经过身份验证的URL时,它会成功地对我进行身份验证,并将数据存储在cassandra中。 然后,我希望必须通过/api/login为所有其他请
使用spring security,您可以拥有每个人都可以访问的公共apiendpoint,以及在获得响应之前需要进行身份验证的endpoint。在我的应用程序中,用户通过jwt令牌进行身份验证。对于目前登录的用户,始终检查令牌,无论公共apiendpoint是否获得请求。 我想知道如何检查当前endpoint是公共endpoint还是经过身份验证的endpoint,这样我可以修改代码,使令牌检查