用户登录后记录最后登录IP&时间
This commit is contained in:
		| @@ -8,15 +8,20 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio | ||||
| import org.springframework.security.core.Authentication; | ||||
| import org.springframework.stereotype.Component; | ||||
| import com.ruoyi.common.constant.Constants; | ||||
| import com.ruoyi.common.core.domain.entity.SysUser; | ||||
| import com.ruoyi.common.core.domain.model.LoginUser; | ||||
| import com.ruoyi.common.core.redis.RedisCache; | ||||
| import com.ruoyi.common.exception.CustomException; | ||||
| import com.ruoyi.common.exception.user.CaptchaException; | ||||
| import com.ruoyi.common.exception.user.CaptchaExpireException; | ||||
| import com.ruoyi.common.exception.user.UserPasswordNotMatchException; | ||||
| import com.ruoyi.common.utils.DateUtils; | ||||
| import com.ruoyi.common.utils.MessageUtils; | ||||
| import com.ruoyi.common.utils.ServletUtils; | ||||
| import com.ruoyi.common.utils.ip.IpUtils; | ||||
| import com.ruoyi.framework.manager.AsyncManager; | ||||
| import com.ruoyi.framework.manager.factory.AsyncFactory; | ||||
| import com.ruoyi.system.service.ISysUserService; | ||||
|  | ||||
| /** | ||||
|  * 登录校验方法 | ||||
| @@ -34,6 +39,9 @@ public class SysLoginService | ||||
|  | ||||
|     @Autowired | ||||
|     private RedisCache redisCache; | ||||
|      | ||||
|     @Autowired | ||||
|     private ISysUserService userService; | ||||
|  | ||||
|     /** | ||||
|      * 登录验证 | ||||
| @@ -82,7 +90,18 @@ public class SysLoginService | ||||
|         } | ||||
|         AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); | ||||
|         LoginUser loginUser = (LoginUser) authentication.getPrincipal(); | ||||
|         recordLoginInfo(loginUser.getUser()); | ||||
|         // 生成token | ||||
|         return tokenService.createToken(loginUser); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 记录登录信息 | ||||
|      */ | ||||
|     public void recordLoginInfo(SysUser user) | ||||
|     { | ||||
|         user.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest())); | ||||
|         user.setLoginDate(DateUtils.getNowDate()); | ||||
|         userService.updateUserProfile(user); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user