diff --git a/sky-common/src/main/java/com/sky/utils/FileBrowserUtil.java b/sky-common/src/main/java/com/sky/utils/FileBrowserUtil.java index 92c6a0a..69b5d94 100644 --- a/sky-common/src/main/java/com/sky/utils/FileBrowserUtil.java +++ b/sky-common/src/main/java/com/sky/utils/FileBrowserUtil.java @@ -74,11 +74,13 @@ public class FileBrowserUtil { /** * —— 第二步:上传文件 —— - * curl -v -X POST \ - * "$DOMAIN/api/resources/$REMOTE_PATH?override=true" \ //服务器上相对路径 - * -H "X-Auth: $TOKEN" \ - * -F "data=@/path/to/local/photo.jpg" //photo.jpg 以 multipart/form-data 的格式上传 + + * curl -v -X POST \ + + * "$DOMAIN/api/resources/$REMOTE_PATH?override=true" \ // 服务器上相对路径 + + * -H "X-Auth: $TOKEN" \ + + * -H "Content-Type: image/jpeg" \ // 根据文件类型替换 + + * --data-binary "@/path/to/local/photo.jpg" // 以 raw body 方式上传 */ + public String uploadAndGetUrl(byte[] fileBytes, String fileName) throws IOException { // 1. 登录拿 token String token = login(); @@ -97,7 +99,7 @@ public class FileBrowserUtil { // 4. 构造上传 URL String uploadUrl = domain + "/api/resources/" + encodedPath + "?override=true"; - // 5. 执行 Multipart upload + // 5. 执行 upload try (CloseableHttpClient client = HttpClients.createDefault()) { HttpPost post = new HttpPost(uploadUrl); post.setHeader("X-Auth", token); diff --git a/sky-server/src/main/java/com/sky/config/RedisConfiguration.java b/sky-server/src/main/java/com/sky/config/RedisConfiguration.java index ac62fec..66a8223 100644 --- a/sky-server/src/main/java/com/sky/config/RedisConfiguration.java +++ b/sky-server/src/main/java/com/sky/config/RedisConfiguration.java @@ -12,11 +12,11 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; public class RedisConfiguration { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ - log.info("开始创建redis模板对象"); - RedisTemplate redisTemplate=new RedisTemplate(); - //设置redis的连接工厂对象 连接工厂负责创建与 Redis 服务器的连接 + log.info("开始创建redis模板对象..."); + RedisTemplate redisTemplate = new RedisTemplate(); + //设置redis的连接工厂对象 redisTemplate.setConnectionFactory(redisConnectionFactory); - //设置redis key的序列化器 这意味着所有通过这个RedisTemplate实例存储的键都将被转换为字符串格式存储在Redis中 + //设置redis key的序列化器 redisTemplate.setKeySerializer(new StringRedisSerializer()); return redisTemplate; } diff --git a/sky-server/src/main/java/com/sky/controller/user/UserController.java b/sky-server/src/main/java/com/sky/controller/user/UserController.java index 19c25b8..0b9dc64 100644 --- a/sky-server/src/main/java/com/sky/controller/user/UserController.java +++ b/sky-server/src/main/java/com/sky/controller/user/UserController.java @@ -31,11 +31,15 @@ public class UserController implements Serializable { @ApiOperation("微信登录") public Result login(@RequestBody UserLoginDTO userLoginDTO){ log.info("微信用户登录:{}",userLoginDTO.getCode()); + + //微信登录 User user=userService.wxLogin(userLoginDTO); + //生成JWT令牌 Mapclaims=new HashMap<>(); claims.put(JwtClaimsConstant.USER_ID,user.getId()); String token=JwtUtil.createJWT(jwtProperties.getUserSecretKey(),jwtProperties.getUserTtl(),claims); + UserLoginVO userLoginVO = UserLoginVO.builder().id(user.getId()).openid(user.getOpenid()).token(token).build(); return Result.success(userLoginVO); } diff --git a/sky-server/src/main/java/com/sky/mapper/UserMapper.java b/sky-server/src/main/java/com/sky/mapper/UserMapper.java index 98b4517..d9bf388 100644 --- a/sky-server/src/main/java/com/sky/mapper/UserMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/UserMapper.java @@ -15,5 +15,6 @@ public interface UserMapper { */ void insert(User user); @Select("select * from user where id=#{userId}") + User getById(Long userId); } diff --git a/sky-server/src/main/java/com/sky/service/impl/UserServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/UserServiceImpl.java index fa3999b..e7fa5f5 100644 --- a/sky-server/src/main/java/com/sky/service/impl/UserServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/UserServiceImpl.java @@ -21,6 +21,7 @@ import java.util.Map; @Service @Slf4j public class UserServiceImpl implements UserService { + //微信服务接口地址 public static final String WX_LOGIN = "https://api.weixin.qq.com/sns/jscode2session"; @Autowired private WeChatProperties weChatProperties; @@ -35,6 +36,7 @@ public class UserServiceImpl implements UserService { public User wxLogin(UserLoginDTO userLoginDTO) { //调用微信接口服务,获得当前微信用户的openid String openid=getOpenid(userLoginDTO.getCode()); + //判断openid是否为空,如果空则登录失败 if(openid==null) throw new LoginFailedException(MessageConstant.LOGIN_FAILED); @@ -65,6 +67,7 @@ public class UserServiceImpl implements UserService { map.put("js_code",code); map.put("grant_type","authorization_code"); String json=HttpClientUtil.doGet(WX_LOGIN,map); + JSONObject jsonObject = JSON.parseObject(json); String openid = jsonObject.getString("openid"); return openid; diff --git a/sky-server/src/main/resources/application-dev.yml b/sky-server/src/main/resources/application-dev.yml index 11402dc..9baf8bb 100644 --- a/sky-server/src/main/resources/application-dev.yml +++ b/sky-server/src/main/resources/application-dev.yml @@ -9,7 +9,7 @@ sky: redis: host: localhost port: 6379 - auth: 123456 + password: 123456 database: 0 alioss: diff --git a/sky-server/src/main/resources/application.yml b/sky-server/src/main/resources/application.yml index 981c99e..a052b28 100644 --- a/sky-server/src/main/resources/application.yml +++ b/sky-server/src/main/resources/application.yml @@ -15,7 +15,7 @@ spring: redis: host: ${sky.redis.host} port: ${sky.redis.port} - auth: ${sky.redis.auth} + password: ${sky.redis.password} database: ${sky.redis.database}