06 SpringSecurity-注销登录功能

文章配套代码:https://gitee.com/lookoutthebush/spring-security-demo

退出登录和登录很类似,我们也是修改配置,指定退出登录请求的URL,用户通过访问该路由可以安全地注销其登录状态,包括使 HttpSession失效、清空已配置的Remember-me验证,以及清空SecurityContextHolder,并在注销成功之 后重定向到/login?logout页面。 如有必要,还可以重新配置。

一、修改配置类

logoutUrl:退出登录功能前端请求的URL。(SpringSecurity实现服务端逻辑)

logoutSuccessUrl: 退出登录后要跳转的URL(ajax请求不需要指定)

logoutSuccessHandler:如果是ajax请求,则通过这个来返回数据结果

deleteCookies:需要删除的cookies, 可以传多个

invalidateHttpSession: 让session失效

二、LogoutSuccessHandler

@Component
@Slf4j
public class LogoutSuccessHandler implements
        org.springframework.security.web.authentication.logout.LogoutSuccessHandler {

    @Override
    public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
            throws IOException, ServletException {
        log.info("logout success, user: {}", authentication.getDetails());
        response.setContentType("application/json;charset=UTF-8");
        response.getWriter().write(JSON.toJSONString(ResultVO.success("success")));
    }
}

三、前端代码

如果使用<a>标签,则配置类中的logoutSuccessHandler去除,如果使用ajax则不需要logoutSuccessUrl。

这里我们使用a标签:

<a style="padding-left: 18px;" class="layui-icon" th:href="@{/logout}">&#x1006;注销</a></div>

 四、运行

点击注销按钮,可以成功注销,然后跳转到了登录页面。

五、总结

选择使用a标签注销登录最简单,这个时候就不需要logoutSuccessHandler。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七号公园的忧伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值