如何使用React前端和Spring Boot安全后端进行客户端身份验证检查?

时间:2017-09-02 09:50:31

标签: spring reactjs spring-mvc spring-boot spring-security

我已经设置了spring boot安全依赖性

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

我还限制了我的WebSecurityConfigAdapter中的某些页面,例如

  http
        .authorizeRequests()                 
        .antMatchers("/").permitAll()
        .antMatchers("/admin/**").hasRole("ADMIN")

(我还完成了UsersDetailsS​​ervice等各种其他样板设置。)

在我使用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类中定义的导航栏。

1 个答案:

答案 0 :(得分:2)

React.js + Spring Security上的这篇文章展示了一种使用会话cookie的方法,这是在spring mvc中保护通信的传统方式。

或者您可以将Basic Auth用于您的API并在React中实现登录逻辑。如果对API的调用导致HTTP 401 Unauthenticated,则要求用户提供凭据并使用in react来调用API。