1、当登陆成功后,将生成的uuid作为token,然后放在浏览器的cookie中(相当于将token给response)并设置cookie的有效期
2、如前端页面需要用户的信息(这是难点),则用cookie里面的token去查询用户信息,因为cookie中token对应的是用户的信息【这有2种方法】
第一步:书写UUIDUtil工具类
package com.jack.seckill.util;
import java.util.UUID;
public class UUIDUtil {
public static String uuid() {
return UUID.randomUUID().toString().replace("-", "");
}
}
第二步:生成token存在redis里面
package com.jack.seckill.service;
import java.util.UUID;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jack.seckill.dao.SeckillDao;
import com.jack.seckill.domain.SeckillUser;
import com.jack.seckill.exception.GlobalException;
import com.jack.seckill.redis.RedisService;
import com.jack.seckill.redis.SeckillUserKey;
import com.jack.seckill.result.CodeMsg;
import com.jack.seckill.util.MD5Util;
import com.jack.seckill.util.UUIDUtil;
import com.jack.seckill.vo.LoginVo;
@Service
public class SeckillUserService {
private static final String COOKIE_NAME_TOKEN="token";
@Autowired
SeckillDao seckillDao;
@Autowired
RedisService redisService;
public SeckillUser getById(long id) {
return seckillDao.getById(id);
}
public boolean login(HttpServletResponse reponse,LoginVo loginVo) {
if(loginVo==null) {
// return CodeMsg.SERVER_ERROR;
throw new GlobalException(CodeMsg.SERVER_ERROR);
}
String formPass=loginVo.getPassword();
String mobile=loginVo.getMobile();
//判断手机号是否存在
SeckillUser seckillUser=getById(Long.parseLong(mobile));
if(seckillUser==null) {
// return CodeMsg.MOBILE_NOT_EXIST;
throw new GlobalException(CodeMsg.MOBILE_NOT_EXIST);
}
//验证密码
String dbPass=seckillUs