亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Springboot點餐系統登錄登出

標簽:
SpringBoot

使用账号密码的方式重新实现了一遍。
核心逻辑和视频中保持一致。
总的来说,需要掌握的就是HttpServletRequest 和 HttpServletResponse 两个类的使用。

首先定义一个登陆页面:

@GetMapping("login/index")
public ModelAndView loginPage()
{
    return new ModelAndView("order/login");
}

然后定义一个验证方法:

@PostMapping("login/verify")
public ResultVO loginVerify(@RequestParam("username") String username,
                            @RequestParam("password") String password,
                            HttpServletResponse httpServletResponse)
{
    Integer result = loginService.verify(username, password, httpServletResponse);

    return ResultVOUtil.error(result, EnumUtil.getByCode(result, LoginEnum.class).getMsg());
}

verify 方法实现:

@Override
public Integer verify(String username, String password, HttpServletResponse httpServletResponse) {
    // 去数据库查
    SellerInfo sellerInfo = getUserByUname(username);
    if (sellerInfo == null) {
        log.error("用户不存在!{}", username);
        return LoginEnum.ERR_USN.getCode();
    }
    if (!password.equals(sellerInfo.getPassword())) {
        log.error("用户密码错误!{}");
        return LoginEnum.ERR_PWD.getCode();
    }
    // 设置token到redis
    String uuid = UUID.randomUUID().toString();
    String key = RedisConstant.PREFIX + uuid;
    Integer expired = RedisConstant.EXPIRED;
    stringRedisTemplate.opsForValue().set(key, password, expired, TimeUnit.SECONDS);
    // 设置 token 到cookie
    Cookie cookie = CookieUtil.setCookie("token", uuid, 7200);
    httpServletResponse.addCookie(cookie);

    return LoginEnum.SUCCESS.getCode();
}

退出登陆:

@GetMapping("logout")
public ModelAndView logout(HttpServletResponse httpServletResponse,
                   HttpServletRequest httpServletRequest,
                   Map<String, Object> map)
{
    // 从cookie中查询
    Cookie cookie = CookieUtil.getCookie(httpServletRequest, "token");
    if (cookie != null) {
        String token = "token_" + cookie.getValue();
        stringRedisTemplate.opsForValue().getOperations().delete(token);
        httpServletResponse.addCookie(CookieUtil.setCookie("token", "", 0));
    }
    map.put("msg", "登出成功");
    map.put("url", "/sell/admin/login/index");
    return new ModelAndView("common/success", map);
}
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
PHP開發工程師
手記
粉絲
3
獲贊與收藏
6

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消