猿问

使用浏览器获取请求发送 JWT 令牌

我正在开发一个 java spring 安全应用程序,我想使用Json Web Token(JWT)实现无状态身份验证。

在 ajax 请求的情况下,没有任何问题,我可以在请求头中以这种格式发送生成的令牌:

Authorization: Bearer jwtHeader.jwtPayload.jwtSignature

问题是发送GET带有点击<a>标签的请求。假设我有一个/my-ordersurl 负责获取普通的 html 页面,并且我只想为经过身份验证的用户保护它。当用户在浏览器地址栏中直接点击链接或粘贴api get url时,他的请求总是失败,因为get请求中没有jwt令牌。

有什么办法可以通过浏览器获取请求发送 jwt 吗?


catspeake
浏览 238回答 2
2回答

慕标5832272

使用 XMLHttpRequest 您可以向 GET 请求添加 Http 标头,但不能向锚标记 GET 请求添加 http 标头。

海绵宝宝撒

在标签的每个链接中添加 jwt 作为查询参数。例如我的订单<a&nbsp;href="/my-orders?jwt=eyJhbGNiJ9.eyJzdWIiOiIwIsH0.KsKmQOZM-jcy4l_7NFsrWn">My&nbsp;Orders</a>并在后端期望 get 或 post 请求的查询参数中的 jwt。
随时随地看视频慕课网APP

相关分类

Java
我要回答