Мне удалось получить токены доступа с локального сервера, но мне нужно использовать токен доступа, полученный из контроллера получения регистрации, в пост-контроллере регистрации. Как получить переменную «token» в пост-контроллере регистрации для использования в вызовах HTTP?
// Initial mapping for visiting the form
@RequestMapping(value = "/signup", method= RequestMethod.GET)
public String signupForm(@RequestParam("code") String code, @ModelAttribute("signup") emailInput form)
throws JsonProcessingException, IOException {
ResponseEntity<String> response = null;
System.out.println("Authorization Code: " + code);
RestTemplate restTemplate = new RestTemplate();
// Client id and secret replaced
String credentials = "clientId:clientSecret";
String encodedCredentials = new String(Base64.encodeBase64(credentials.getBytes()));
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
headers.add("Authorization", "Basic " + encodedCredentials);
HttpEntity<String> request = new HttpEntity<String>(headers);
String access_token_url = "https://idfed.constantcontact.com/as/token.oauth2";
access_token_url += "?code=" + code;
access_token_url += "&redirect_uri=http://localhost:8080/signup";
access_token_url += "&grant_type=authorization_code";
response = restTemplate.exchange(access_token_url, HttpMethod.POST, request, String.class);
System.out.println("Full Access Token Response: " + response.getBody());
// Get the Access Token From the recieved JSON response
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(response.getBody());
String token = node.path("access_token").asText();
System.out.println("Here is my token: " + token);
return "/signup";
}
// What happens after the user presses the submit button
Второй контроллер, где мне нужна переменная для использования в вызовах. Мне нужно это здесь, чтобы я мог использовать переменные формы, собранные со страницы HTML, чтобы делать вызовы после того, как пользователь публикует данные формы.
@RequestMapping(value = "/signup", method= RequestMethod.POST)
public String signupSubmit(@ModelAttribute("signup") emailInput form, RedirectAttributes redirectAttributes)
throws IOException {
// Use access token here to make calls to endpoints
redirectAttributes.addFlashAttribute("email", form.getEmail());
return "redirect:/result";
}