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

axios公共endpoint所需的承载令牌

孔棋
2023-03-14

使用Vue。js我试图用Spring Boot在RESTful API中实现JWT登录表单,但除非我向请求中添加承载令牌,否则我得到的只是403状态。我已经将endpoint设置为无需任何许可即可访问,并且在postman上可以在没有授权标头的情况下发送请求。这是我在Spring上的安全配置的一部分:

.antMatchers(HttpMethod.POST, "/auth/login")
.permitAll()

这就是vue。我发出发帖请求的js服务:

import axios from 'axios'


let USER_API_BASE_URL = 'http://localhost:8080/auth/login/'
let config = {
    headers: {
    'Content-Type': 'application/json',
    'Authorization': "Bearer (hereGoesTheToken)"
    }}

class LoginService{
    postLogin(emailInput, passwordInput){
        let user = JSON.stringify({email: emailInput, password: passwordInput});
        var response = axios.post(USER_API_BASE_URL, user, config);
        console.log(response)
        return response
    }
}

export default new LoginService()

我想这样做,这样就不需要令牌来访问您请求相同令牌的部分...有什么方法可以做到这一点吗?

共有1个答案

欧阳正德
2023-03-14

我不是100%确定,但似乎你的403是由CSRF保护引起的。查看JWT登录示例,了解如何在服务器上启用JWT身份验证。

总之,如果您启用HTTP Basic(. http pBasic())并禁用会话管理(. setsionManagement(). setsionCreationPolicy(SessionCreationPolicy. STATELESS)),您还可以禁用CSRF(. csrf(). disable())。这将是实现您所尝试的操作的推荐方法,因为无状态服务器(在会话管理方面)不容易受到CSRF保护。

您还可以实现自己的身份验证endpoint,这是您的示例,在这种情况下,您不需要启用。httpBasic()。你可以直接使用。在这种情况下,oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt)。查看本周二的Tanzu对话,了解更多关于JWT认证的信息(为什么和为什么不)。

需要指出的是,服务器上的任何形式的会话都会使您容易受到CSRF攻击,因此确保浏览器中没有JSESSIONID或类似的会话是很重要的。看看这个问题和其他几个类似的问题,因为类似的问题以前经常被问到。

 类似资料:
  • 我正在使用Spring Boot构建一个REST API。我添加了Swagger-ui来处理文档。我在实现客户机身份验证流到swagger时遇到了一个问题,问题是我可以通过基本auth让swagger-ui授权提供的客户机ID(用户名)和客户机机密(密码),但swagger UI似乎没有应用到endpoint调用的结果访问令牌。 确认,我的授权过程;-使用basic auth将base64编码的用

  • 我正在尝试调用我已被指示的API: 这需要一个授权头:承载访问令牌。 我有承载访问令牌,并尝试通过邮递员,并通过C#使用WebRequest,没有任何效果。 在Postman中,我将方法设置为GET,将授权设置为No Auth,在Headers选项卡上,我尝试添加一个标题,如下所示: 标头:“授权” 值:“我的令牌” 我也尝试过 标题:“Bearer”值:“mytoken” 也 标头:“授权” 值

  • 说明 收集了被多个多路处理模块(MPM)实现的公共指令 状态 MPM AcceptMutex 指令 说明 Apache用于串行化多个子进程在(多个)网络套接字(socket)上接受请求的方法 语法 AcceptMutex Default|method 默认值 AcceptMutex Default 作用域 server config 状态 MPM 模块 prefork, worker Accept

  • 我有一个Spring HttpSecurity配置 客户端为“/public/**”endpoint设置授权标头可能很愚蠢。 但是,我注意到Spring Security尝试进行身份验证,甚至尝试为公共请求创建经过身份验证的会话,因为提供了授权标头。 HttpSecurity配置是否应该覆盖此行为?

  • 我在调用rest api时尝试使用承载令牌时遇到一些问题。 我尝试了两种方法,结果相同: 我在azure门户中创建了一个应用注册,并授予它使用devops api进行用户模拟的权限。 我在中创建了一个应用程序https://app.vsaex.visualstudio.com/并授予it项目/团队管理权限。 对于我的代码,我使用了这个(当我使用PAT进行身份验证时有效) 我使用以下示例获取令牌:h