我有一个 API 来保护。这个 API 可能有两种类型的消费者——我们自己的单页应用程序,以及将与其集成的第三方服务。
我已经读过,通常 REST API 不支持 cookie,最好使用标头字段。也许这只是惯例。
安全 cookie 是在 SPA 中保存身份验证令牌的更好位置。它可以防止它们被跨站点脚本攻击获得。此外,如果 SPA 打开一个新窗口/选项卡,则 sessionStorage 不会流过,导致用户必须再次登录。您可以使用 localStorage,但将身份验证令牌保留在那里并不是一个好主意,因为它仍然存在。
我应该让服务器端的身份验证过滤器接受 cookie 还是标题字段?先试试 cookie,如果没有,再试试 header 字段?SPA 将使用 Cookie,其他 API 消费者将使用标头字段。或者,只使用一种传输身份验证令牌的方式会更好吗?