重新加载Jwt安全的Spring Boot React应用时出现错误401(和配置问题)

时间:2020-06-05 18:00:46

标签: java reactjs spring spring-boot jwt

我正在学习弹簧靴并做出反应。我已经成功地学习了如何使用前端maven插件将两者结合起来。同样是JWT的一种工作方式(至少api调用会在令牌有效时返回我想要的内容,并在我设置快速到期时间时返回错误)。但是反应路线很奇怪。我对我需要从Web安全配置Java文件中排除的内容有疑问。如果我排除太多,我将看不到主页。我想我已经找到了解决方案,但现在无法重新加载。您能帮我在这里找到问题吗?我希望JWT为API工作,并且希望能够访问页面并重新加载它们。 我的WebSecurityConfig:

import axios from 'axios'

class AuthenticationService {

    executeJwtAuthenticationService(username, password) {
        return axios.post('http://localhost:8090/authenticate', {
            username,
            password
        })
    }

    executeHelloService() {
        console.log("===executeHelloService===")
        return axios.get('http://localhost:8090/hello');        
    }

    registerSuccessfulLoginForJwt(username, token) {
        console.log("===registerSuccessfulLoginForJwt===")
        localStorage.setItem('token', token);
        localStorage.setItem('authenticatedUser', username);
        this.setupAxiosInterceptors();
    }

    createJWTToken(token) {
        return 'Bearer ' + token
    }

    setupAxiosInterceptors() {
        axios.interceptors.request.use(
            config => {
                const token = localStorage.getItem('token');
                if (token) {
                    config.headers['Authorization'] = 'Bearer ' + token;
                }
                return config;
            },
            error => {
                Promise.reject(error)
            });
    }

    logout() {
        localStorage.removeItem("authenticatedUser");
        localStorage.removeItem("token");
    }

    isUserLoggedIn() {

        const token = localStorage.getItem('token');
        console.log("===UserloggedInCheck===");
        console.log(token);

        if (token) {
            return true;
        }
        return false;
    }

    getLoggedInUserName() {
        let user = localStorage.getItem('authenticatedUser');
        if(user===null) return '';
        return user;
    }


}

export default new AuthenticationService()

我找到了这个文件,它可以解析404进行索引:

{
  "name": "jwt-login-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "axios": "^0.19.2",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "3.4.1"
  },
  "scripts": {
    "start": "set PORT=4200 && react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "proxy": "http://localhost:8090",
  "homepage": "."
}

身份验证服务:

server.port=8090
jwt.secret=godaejwt
spring.mvc.static-path-pattern = /**.* --this is for the WebConfig

我的Package.json:

gatsby

和资源属性:

npm i gatsby

0 个答案:

没有答案