当前位置: 首页 > 知识库问答 >
问题:

使用httponly cookie将JWT从节点REST API发送到Vue.js SPA

从经略
2023-03-14

我正在用一个Vue.js前端和一个使用Express的节点REST API构建一个web应用程序。我正在尝试解决身份验证问题,特别是尝试使用JWTS实现无状态。我在不同的域上完全分离了它们,并在这两个域上使用自签名SSL证书来在我的本地环境中使用HTTPS。我一直在尝试实现这里概述的JWT auth策略,该策略建议使用快速过期的JWTs进行授权,同时让API通过httponly cookie向客户机传递一个“刷新令牌”。

我逐渐意识到问题在于,在客户端,我使用axios提交请求和处理响应,而httpOnly cookie不能被axios之类的javascript库读取。

冗长的搜索似乎没有任何好的解决办法;所有JWT auth策略似乎都建议以某种方式使用httpOnly cookie来持久化登录,而且似乎没有安全的方法从axios或其他javascript REST库访问httpOnly cookie。这里有什么解决办法吗?我的问题是试图将前端和API放在两个独立的域上吗?

共有1个答案

孙自怡
2023-03-14

是的。交叉起源似乎会很混乱(如这里所提到的)。

是的,您不能从javascript上下文(axios等)访问HttpOnly cookie。

当我做Auth W/Vue时,我在Nuxt上运行,只使用他们的Auth插件。这是他们文档的那一部分。

当使用Nuxt时,您甚至可以(根据您的意见)将API作为中间件托管在与Nuxt WebApp相同的盒子上。

 类似资料:
  • 我试图使用RESTAssuret将“application/octet-stream”内容类型发送到RestAPI。但是它失败了,并抛出错误,比如:不知道如何将×××××编码为字节流。我曾尝试使用encoderConfig().encodeContentTypeas()方法,但此meyhod不适用于RestAssured。请建议是否有任何其他方法来解决这个问题。

  • 我想使用RESTTemplate将POST请求发送到RestAPI。当我执行下面的代码时,它给出了null响应。但是,我得到了http状态代码200 OK。我已经适当地添加了响应模型,所以模型没有问题。甚至,当我将响应类型更改为String时,它也不给我响应。有什么建议吗?

  • 问题内容: 我正在尝试使用password-jwt设置JWT身份验证。我认为我已经采取了正确的步骤,但是测试GET不会成功,并且我不知道如何调试它。 这是我所做的: 尽可能直接从文档中设置passport-jwt 向我的用户/ login端点添加了令牌结果 到现在为止一切都很好。我可以登录用户(使用护照本地身份验证),响应是我希望的… {“ user”:{“ _id”:“ 56c8b5bd80d1

  • 我对CORS这个问题还不熟悉,正在努力找出问题所在。 我有两个应用程序: 托管在上的react应用程序http://localhost:3000/ 在响应应用端,我试图通过一个授权标头与令牌如下: 但这是一个问题。我在节点(express)API端收到的标题如下: 它缺少授权头,因此,我的身份验证失败,API不工作。 我错过了什么? 编辑:路由处理程序: 然后我的索引路由文件:

  • 我正在尝试使用JNI将一个图像从C++发送到java。该图像是一个用C++创建的位图,其中我使用将像素转换为一个。当使用C++将图像保存到文件中时,没有任何问题,但是当将像素发送到Java时,图像会变得模糊。JavaDocs说我必须使用来实现BufferedImage,但我觉得压缩中有问题 C++位图 这是图像的结果

  • 我正在从Java向logstash发送TCP字符串消息。我不想为每条消息创建一个新的TCP连接,但我想重用TCP连接。保留一个TCP连接并通过socket.write和socket.flush发送消息,直到其中一个方法抛出IOException然后打开新连接,这样是否安全?