我有我的 Ionic/angular 2 应用程序正在运行localhost:8000
该应用程序最终将在浏览器平台上运行。该应用程序正在调用托管在我的本地计算机上的 RESTFull api ,我的主机名在https://adawy/api
哪里,并在文件和 apache 虚拟主机中定义。服务器端是 Slim 3。adawy
hosts
身份验证后的 API 返回一个 JWT,用于所有请求。
我的目标是保护令牌免受跨站点请求伪造和跨站点脚本的影响。将令牌保存在 javascript 变量或任何形式的本地存储中将使 JWT 可以从 javascript 访问。
我发现最好的方法是将 JWT 作为 HTTPOnly cookie 返回。因此它将无法从 javascript 访问,并且只能由浏览器发送,其中包含任何即将到来的adawy
域请求。
我已成功将令牌作为 cookie 返回,但问题是 cookie 不会随任何下一个 XHR 请求一起发送。
另外,我在 Devtools 的 Cookies 部分中看不到 cookie。
我知道angular可以通过寻找XSRF-TOKEN
cookie来支持这种情况。它也不起作用,如您所见,我将 cookie 的名称设置为,XSRF-TOKEN
但是,对于任何其他请求,都不会发送此 cookie。
我想知道如果 angular 可以访问这个 cookie,这将如何得到保护,任何其他脚本也可以?
这是下一个请求,没有发送 cookie。请忽略标题Authorization
,因为我的角度代码直接设置它。
在我的角度应用程序中,我withCredentials: true
在发出最后一个获取请求时设置了选项。
我用过的更新adawy.com
,我仍然有同样的问题。