如何使用 Spring Boot 将 jwt 令牌传递到标头中?

时间:2021-07-19 19:15:57

标签: reactjs spring spring-boot spring-security

我用 spring boot 和 react 创建了一个简单的应用程序。当我登录时,我从后端获得了 jwt 令牌。我需要在自动传递标头后使用该令牌访问数据。 (作为下面的postmon ss)

enter image description here

这是我的反应代码

extract( []     , [] ) .
extract( [X|Xs] , Ys ) :- extract(X,Ys,Y1), extract(Xs,Y1).

extract( X         , [X|Ys] , Ys ) :- \+ is_list(X), !.
extract( X         , [X|Ys] , Ys ) :- flat_list(X) , !.
extract( [X]       , Ys     , Y1 ) :- extract(X,Ys,Y1), !.
extract( [X|Xs] , Ys     , Y2 ) :- extract(X,Ys,Y1), extract(Xs,Y1,Y2) .

flat_list( []     ) .
flat_list( [X|_]  ) :- is_list(X), !, fail .
flat_list( [_|Xs] ) :- flat_list(Xs) .

这是我的弹簧控制器类

throw new UserNotFoundException();

当我运行这个时,控制台结果是

useEffect(()=>{
    const config ={
        headers:{
            Authorization: 'Bearer '+ localStorage.getItem('token')
        }
    }
    axios.get('http://localhost:8090/dashboard',config).then(res=>{
        console.log(res);
    })
})

如何解决这个问题?

1 个答案:

答案 0 :(得分:-3)

如果您还没有尝试过,请尝试创建一个扩展 BasicAuthenticationFilter 并覆盖 doFilterInternal() 方法的类,使用请求参数,使用 getHeader() 读取标头并记录。查看您支持的获取令牌的格式是否正确。

同样在 React 代码中,使用日志并交叉检查 localStorage.getItem('token') 是否返回有效令牌(Bearer YOUR SECRET KEY)