师兄,为什么你扫码登录了之后

来源:12-7 登出成功

林就远

2019-03-26

师兄,为什么你扫码登录了之后会带一个cookie进来?

写回答

1回答

廖师兄

2019-03-26

没有带,是获得openid后设置进去的,看源码

@GetMapping("/login")
public ModelAndView login(@RequestParam("openid") String openid,
                          HttpServletResponse response,
                          Map<String, Object> map) {

    //1. openid去和数据库里的数据匹配
    SellerInfo sellerInfo = sellerService.findSellerInfoByOpenid(openid);
    if (sellerInfo == null) {
        map.put("msg", ResultEnum.LOGIN_FAIL.getMessage());
        map.put("url", "/sell/seller/order/list");
        return new ModelAndView("common/error");
    }

    //2. 设置token至redis
    String token = UUID.randomUUID().toString();
    Integer expire = RedisConstant.EXPIRE;

    redisTemplate.opsForValue().set(String.format(RedisConstant.TOKEN_PREFIX, token), openid, expire, TimeUnit.SECONDS);

    //3. 设置token至cookie
    CookieUtil.set(response, CookieConstant.TOKEN, token, expire);

    return new ModelAndView("redirect:" + projectUrlConfig.getSell() + "/sell/seller/order/list");


1
1
林就远
谢谢师兄,已经解决了,我本来是在那个qruserinfo 里面的state加了个默认地址就是订单页面,所以没有cookile 进来,早上起来看了师兄的回复,才想起来,我没有走login方法,所以得到的openid 没有用来创建cookile, 非常感谢师兄的解答
2019-03-27
共1条回复

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程