本地主机上的Angular Spring Boot Cookies

时间:2019-05-21 14:22:21

标签: angular spring spring-boot cookies

我将Angular 7用作前端,将Spring Boot用作后端。

Angular应用程序托管在localhost:4200上,而Spring应用程序托管在localhost:8080

在用户登录时,我正在保存一个春季会议,并返回了cookie。当用户尝试再次登录时,我首先检查该会话是否存在。

为此,需要客户端提供cookie。但是我没有在客户端请求中得到任何cookie。

在Chrome开发者工具的“应用程序”标签中,可以看到以下cookie:

enter image description here

在Spring Boot的application.properties中,我有:

spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
server.servlet.session.timeout=60
spring.session.jdbc.table-name=SPRING_SESSION
server.servlet.session.cookie.max-age=2592000

在控制器中:

@RestController
@CrossOrigin(allowCredentials = "true", origins = {"http://localhost:4200", "http://127.0.0.1:4200"})
@RequestMapping(value = "/users")
public class UsersController {    
    ...

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public ResponseEntity<?> login(HttpServletRequest request, HttpServletResponse response) {

        Cookie[] cookies = request.getCookies();
        if(cookies != null) {
          for (int i = 0; i < cookies.length; i++) {
              String cookieName = cookies[i].getName();
              String cookieValue = cookies[i].getValue();
              logger.info("UsersController - cookie - {} {}", cookieName, cookieValue);
           }
        }
        HttpSession springsession = request.getSession(false);
        if (springsession != null) {
            logger.info("UsersController - login - session exists");            
            ...
        }       

        logger.info("UsersController - login - session does not exist");
        ...
    }

我在客户请求中没有得到任何cookie。

当我尝试来自邮递员的多个登录请求时,它会起作用。

那为什么不能在浏览器中工作呢?

我尝试将server.servlet.session.cookie.domain属性设置为null,false和127.0.0.1。但是没有一个。

如何解决?

0 个答案:

没有答案