Я не знаю почему, но вк не работает для Security 5
.oauth2Login()
.authorizationEndpoint()
.baseUri("/oauth2/authorize")
...
Я сделал как делают через PHP , то есть получить access_token и сделал запрос на данные
String URL2 = "https://api.vk.com/method/users.get?user_id="+listJson.get("user_id")+"&access_token="+listJson.get("access_token")+"&fields=uid,first_name,last_name,email,&v=5.92";
в итоге я получил все атрибуты которые хотел:
ResponseEntity<String> response2 = restTemplate.exchange(URL2, //
HttpMethod.GET, entity, String.class);
String result2 = response2.getBody();
Map<String,Object> listJson2 = jsonParser.parseMap(result2);
List<Object> listJson3 = (List<Object>) listJson2.get("response");
attributes = (Map<String, Object>) listJson3.get(0);
attributes.put("email",listJson.get("email"));
Но что делать дальше? Я знаю что можно сделать так:
UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(username, password);
authToken.setDetails(new WebAuthenticationDetails(request));
Authentication authentication = authenticationManager.authenticate(authToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
и каждый раз проверять есть ли в базе данных , если есть создавать нового. Но мне кажется это неправильно.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости