Я уже аутентифицировал clientId, ClientSecret для получения AccessToken, после этого я успешно использовал токен доступа для создания токена входа в сеанс, пока не использую MFA. После получения session_token я копирую почтовый код HTML из OneLogin и передаю свой session_token в почтовую форму html. Когда я нажал «Отправить», я подумал, что он уже отправлен на onelogin и перенаправлен на мой URL. Он уже перенаправлен обратно на мой контроллер, но в контроллере я не могу найти куки в запросе, не могу решить, аутентифицирован ли пользователь или нет.
Я использовал SpringBoot и Thymleaf, чтобы сделать это, весь процесс аутентификации в моем контроллере и возврата ModelAndView и добавления токена сеанса на страницу thymleaf.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>Auth API Test</p>
<form action=
"https://{your_subdomain}.onelogin.com/session_via_api_token" method="POST">
<input type="hidden" name="session_token" value="{your session token value}">
<input type="submit" placeholder="GO">
<input id="auth_token" type="hidden">
</form>
</body>
</html>
Это мой контроллер для аутентификации и передачи токена сеанса на страницу тимелиста. После того, как HTML Сообщение отослано и страница перенаправления Onelogin назад, куки всегда нулевые, я не знаю, какой URL мне следует перенаправить.
@GetMapping("/index")
public ModelAndView modelAndView(HttpServletRequest servletRequest, HttpServletResponse servletResponse){
Cookie[] cookies = servletRequest.getCookies();
log.info("Called");
/**
* Authentication process and get the SessionToken from Onelogin
*/
modelAndView.addObject("sessionToken",sessionToken);
return modelAndView;
}