|
@@ -5,8 +5,12 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.futu.course.common.utils.Md5Utils;
|
|
|
+import com.futu.course.common.utils.ThreadLocalUtil;
|
|
|
+import com.futu.course.common.utils.TokenUtils;
|
|
|
import com.futu.course.minio.service.impl.FileServiceImpl;
|
|
|
import com.futu.course.user.domain.User;
|
|
|
+import com.futu.course.user.dto.TokenDto;
|
|
|
import com.futu.course.user.service.UserService;
|
|
|
import com.futu.course.user.mapper.UserMapper;
|
|
|
import io.minio.errors.*;
|
|
@@ -18,9 +22,7 @@ import com.futu.course.common.utils.SnowflakeIdWorker;
|
|
|
import com.futu.course.user.dto.LoginDTO;
|
|
|
import com.futu.course.user.dto.UserDTO;
|
|
|
import com.futu.course.user.dto.UserLoginDto;
|
|
|
-import io.jsonwebtoken.Jwts;
|
|
|
-import io.jsonwebtoken.SignatureAlgorithm;
|
|
|
-import io.jsonwebtoken.security.Keys;
|
|
|
+
|
|
|
import org.apache.commons.codec.binary.Base64;
|
|
|
import org.apache.http.HttpEntity;
|
|
|
import org.apache.http.HttpResponse;
|
|
@@ -114,13 +116,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
|
|
|
if(users.size() > 0) {
|
|
|
User user = users.get(0);
|
|
|
// 生成一个 256 位(32 字节)的安全密钥
|
|
|
- SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
|
|
|
- // 使用密钥生成 JWT
|
|
|
- String jws = Jwts.builder()
|
|
|
- .setSubject(user.getId().toString())
|
|
|
- .signWith(key)
|
|
|
- .compact();
|
|
|
- user.setToken(jws);
|
|
|
+ String jwtToken = TokenUtils.createJwtToken(user.getId().toString());
|
|
|
+ user.setToken(jwtToken);
|
|
|
redisTemplate.opsForValue().set("user",user,1, TimeUnit.DAYS);
|
|
|
return R.ok(user);
|
|
|
}
|
|
@@ -146,16 +143,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
|
|
|
user.setUsername(dto.getWxUsername());
|
|
|
user.setNickname(dto.getWxUsername());
|
|
|
user.setId(worker.nextId());
|
|
|
- user.setPassword(null);
|
|
|
+
|
|
|
+// 默认密码是123456
|
|
|
+ String salt = Md5Utils.getSalt();
|
|
|
+ String encode = Md5Utils.encode("123456" + salt);
|
|
|
+ user.setPassword(encode);
|
|
|
+ user.setSalt(salt);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// user.setPassword(null);
|
|
|
// 生成一个 256 位(32 字节)的安全密钥
|
|
|
- SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
|
|
|
- // 使用密钥生成 JWT
|
|
|
- String jws = Jwts.builder()
|
|
|
- .setSubject(user.getId().toString())
|
|
|
- .signWith(key)
|
|
|
- .compact();
|
|
|
- user.setToken(jws);
|
|
|
+ String jwtToken = TokenUtils.createJwtToken(user.getId().toString());
|
|
|
+ user.setToken(jwtToken);
|
|
|
userMapper.insert(user);
|
|
|
+
|
|
|
redisTemplate.opsForValue().set("user",user,1, TimeUnit.DAYS);
|
|
|
return R.ok(user);
|
|
|
}
|
|
@@ -191,20 +194,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
|
|
|
return R.restResult(null,500,"用户不存在");
|
|
|
}
|
|
|
String salt = user.getSalt();
|
|
|
- String password = dto.getPassword();
|
|
|
- String hex = DigestUtils.md5DigestAsHex((salt + password).getBytes());
|
|
|
- if (hex.equals(user.getPassword()))
|
|
|
+// 输入的加密密码
|
|
|
+ String encode = Md5Utils.encode(dto.getPassword() + salt);
|
|
|
+ System.err.println(encode);
|
|
|
+ // 数据库的加密密码
|
|
|
+ String password = user.getPassword();
|
|
|
+ System.err.println(password);
|
|
|
+ if (encode.equals(password))
|
|
|
{
|
|
|
- // 生成一个 256 位(32 字节)的安全密钥
|
|
|
- SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
|
|
|
- // 使用密钥生成 JWT
|
|
|
- String jws = Jwts.builder()
|
|
|
- .setSubject(user.getId().toString())
|
|
|
- .signWith(key)
|
|
|
- .compact();
|
|
|
- user.setToken(jws);
|
|
|
- redisTemplate.opsForValue().set("user",user,1, TimeUnit.DAYS);
|
|
|
- return R.ok(user);
|
|
|
+ String jwtToken = TokenUtils.createJwtToken(user.getId().toString());
|
|
|
+ System.err.println(jwtToken);
|
|
|
+// // 生成一个 256 位(32 字节)的安全密钥
|
|
|
+// SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
|
|
|
+// // 使用密钥生成 JWT
|
|
|
+// String jws = Jwts.builder()
|
|
|
+// .setSubject(user.getId().toString())
|
|
|
+// .signWith(key)
|
|
|
+// .compact();
|
|
|
+// user.setToken(jws);
|
|
|
+// redisTemplate.opsForValue().set("user",user,1, TimeUnit.DAYS);
|
|
|
+ return R.ok(jwtToken);
|
|
|
}
|
|
|
|
|
|
}catch (Exception e)
|
|
@@ -259,7 +268,21 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
|
|
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ public R getLoginUser(TokenDto token) {
|
|
|
+
|
|
|
+ //解析token
|
|
|
+ Long userId = TokenUtils.getUserId(token.getToken());
|
|
|
|
|
|
+ System.out.println(userId);
|
|
|
+ if (userId != null)
|
|
|
+ {
|
|
|
+ User user = userMapper.selectById(userId);
|
|
|
+ ThreadLocalUtil.set(user.getId());
|
|
|
+ return R.ok(user);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|