TokenManagerImpl.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package com.punchsettle.server.service.manager.impl;
  2. import com.punchsettle.server.common.exception.BusinessException;
  3. import com.punchsettle.server.common.utils.Assert;
  4. import com.punchsettle.server.core.config.BizConfig;
  5. import com.punchsettle.server.service.manager.ITokenManager;
  6. import com.punchsettle.server.utiis.TokenUtils;
  7. import com.punchsettle.server.utiis.UserUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import java.util.Calendar;
  11. import java.util.Optional;
  12. /**
  13. * @author myou
  14. * @version 1.0.0
  15. * @date 2024/12/28 21:24
  16. * @description Json Web Token 管理类
  17. */
  18. @Service
  19. public class TokenManagerImpl implements ITokenManager {
  20. @Autowired
  21. private BizConfig bizConfig;
  22. @Override
  23. public String createToken(Long userId) {
  24. Assert.isNullInBusiness(userId, "请传入用户ID");
  25. Calendar instance = Calendar.getInstance();
  26. instance.add(Calendar.DATE, bizConfig.getTokenExpire());
  27. return TokenUtils.createToken(userId, instance.getTime());
  28. }
  29. @Override
  30. public String refreshToken() {
  31. // 获取用户信息
  32. Long currentUserId =
  33. Optional.ofNullable(UserUtils.getCurrentUserId()).orElseThrow(() -> BusinessException.fail("无法获取当前用户ID"));
  34. return createToken(currentUserId);
  35. }
  36. }