gpt4 book ai didi

javascript - 如何使用 spring-security 检查用户是否登录?

转载 作者:行者123 更新时间:2023-11-28 19:01:34 29 4
gpt4 key购买 nike

我已经在客户端代码中针对运行 spring-security 的后端实现了 ajax 登录/注销。

我需要知道的是如何判断用户是否登录。

例如:

  • 用户登录。这会从 POST 到/login 返回 200。我可以设置一些变量来跟踪客户端的状态。
  • 用户刷新浏览器。现在国家已经失去了。

所以,我想知道客户端是否有某种方法来检查用户是否纯粹从客户端进行身份验证和登录。

有这样的办法吗?

最佳答案

在JSP中,您可以访问请求用户princial(或)使用spring security taglib来获取经过身份验证的用户 Angular 色

示例:JSP 中的访问请求用户主体

<c:if test="${pageContext.request.userPrincipal.name != null}">
<label>
Hi ${pageContext.request.userPrincipal.name} ! Welcome to our site
</label>
</c:if>

示例:变量 isAuthenticated 根据登录用户的授予 Angular 色。

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<sec:authorize access="hasAnyAuthority('ROLE_ADMIN', 'ROLE_USER')" var="isAuthenticated">
</sec:authorize>

<c:out value="${isAuthenticated}"/>

甚至您可以使用相同的标签启用/禁用某些 html

<sec:authorize access="hasAnyRole('ROLE_ADMIN')">
<a href="delete/${file.id}">Delete</a>
</sec:authorize>

如果你想从javascript获取,那么你需要公开一个返回request.userPrincipal的后端方法

关于javascript - 如何使用 spring-security 检查用户是否登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32448749/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com