我已经设置了spring boot安全依赖性
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
我还限制了我的WebSecurityConfigAdapter中的某些页面,例如
http
.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
(我还完成了UsersDetailsService等各种其他样板设置。)
在我使用html / thymeleaf的传统前端中,如果用户已登录,我可以简单地执行此类操作以显示注销链接。
<form sec:authorize="isAuthenticated()" id="frmlogout" th:action="@{/logout}" method="post" class="form-inline">
<a href="javascript:{}" onclick="document.getElementById('frmlogout').submit(); return false;">Logout</a>
</form>
问题是,我该如何做一个类似的&#34; isAuthenticated()&#34;从我的react .js类中检查(以及角色检查)?它甚至可能吗?
所需的结果是我可以将注销按钮添加到我的.js类中定义的导航栏。
答案 0 :(得分:2)
React.js + Spring Security上的这篇文章展示了一种使用会话cookie的方法,这是在spring mvc中保护通信的传统方式。
或者您可以将Basic Auth用于您的API并在React中实现登录逻辑。如果对API的调用导致HTTP 401 Unauthenticated,则要求用户提供凭据并使用in react来调用API。