Я начал тимелеаф и jquery / ajax. Я пытался создать форму входа в систему. При успешном входе в систему api возвращает токен jwt, а в последующих вызовах API используется токен jwt в заголовке запроса «Авторизация». Добавление jquery для страницы входа ниже.
$("#login-form").submit(function (event) {
event.preventDefault();
var loginForm = {}
loginForm["username"] = $("#user").val();
loginForm["password"] = $("#pass").val();
$("#btn-login").prop("disabled", true);
$.ajax({
type: "POST",
contentType: "application/json",
url: "/login",
data: JSON.stringify(loginForm),
dataType: 'json',
cache: false,
timeout: 600000,
success: function (data) {
console.log("jwt_token ", data);
$.ajax({
type: "GET",
url: "/home",
headers: {'Authorization' : data},
cache: false,
timeout: 600000,
success: function (data) {
console.log("Home page api success");
},
error: function (e) {
}
});
},
error: function (e) {
}
});
});
});
Добавление файла контроллера ниже.
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TestController {
@GetMapping("/login")
public String showLoginPage() {
return "login";
}
@GetMapping("/home")
public String showHomePage(HttpServletRequest request) {
final String jwtToken = request.getHeader("Authorization");
System.out.println("token" + jwtToken);
return "home";
}
}
Здесь у меня 2 проблемы.
При успешном входе в систему я не перенаправляюсь на домашнюю страницу. Он все еще находится на странице входа. Но я мог видеть, как токен jwt печатается в консоли браузера.
Мне не удалось получить заголовок авторизации в моем контроллере. Контроллер печатает значение токена в консоли как токен [объект объекта] .
Пожалуйста, помогите. Заранее спасибо.