package com.vci.ubcs.code.service.impl; import com.vci.ubcs.code.service.IPasswordFreeLoginService; import org.apache.commons.collections4.MultiValuedMap; import org.apache.commons.collections4.multimap.ArrayListValuedHashMap; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.http.HttpMethod; import org.springframework.web.client.RestTemplate; /** * 免密登录服务 * @author ludc * @date 2023/9/11 15:45 */ @Service public class PasswordFreeLoginServiceImpl implements IPasswordFreeLoginService { private RestTemplate restTemplate; /** * 免密登录 * @param account 账号 * @return */ @Override public boolean passwordFreeLogin(String account) { // 免密登录接口地址 String loginUrl = "http://ubcs-auth/auth/login"; // 设置请求头 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); //设置请求体参数 MultiValueMap bodyParams = new LinkedMultiValueMap(); bodyParams.add("account",account); // 创建请求实体 HttpEntity> requestEntity = new HttpEntity<>(bodyParams, headers); // 发送POST请求 ResponseEntity responseEntity = restTemplate.exchange(loginUrl, HttpMethod.POST, requestEntity, String.class); String responseBody = responseEntity.getBody(); //拿到响应体将token存入到redis中,以account作为存储的key // 解析响应体获取令牌 // 这里假设响应体是JSON格式,包含一个名为"token"的字段 // 根据实际情况进行解析 // JSONObject json = new JSONObject(responseBody); // String token = json.getString("token"); return false; } }