예를 들어 두 개의 도메인 이름:
aaa.yupi.com
bbb.yupi.com
쿠키를 공유하려면 더 높은 수준의 도메인을 심을 수 있습니다. yupi.com
사용자가 A에 로그인했으므로 A에 세션(사용자 로그인 정보)이 존재합니다
결과적으로 B를 요청하면 B는 사용자 정보가 없어 인식하지 못합니다.
단일 서버의 메모리에 데이터를 저장하는 대신 공유 저장소
redis 소개 및 redis 운영 가능:
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.6.4</version> </dependency>
Redis에 세션을 자동으로 저장하기 위한 spring-session과 redis의 통합 소개:
<!-- https://mvnrepository.com/artifact/org.springframework.session/spring-session-data-redis --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>2.6.3</version> </dependency>
spring-session 저장소 구성 수정 spring.session.store-type
기본값은 없음입니다. 단일 서버
store-type: redis, 이는 redis
redis: host: localhost port: 6379 session: timeout: 60 store-type: redis
효과:
/** * @author 刘宇浩 */ @RestController @RequestMapping("/session") public class SessionController { public static final String key = "USERLOGINSTATE"; @GetMapping("/set") public Result setSession(HttpServletRequest request) { User user = new User(); user.setClassName("21软件3"); user.setName("lyl"); request.getSession().setAttribute(key, user); return ResultGenerator.genSuccessResult(200, "成功"); } @GetMapping("/get") public Result getSession(HttpServletRequest request){ User userloginstate = (User)request.getSession().getAttribute(key); System.out.println(userloginstate.getName()); System.out.println(userloginstate.getClassName()); return ResultGenerator.genSuccessResult(200,"成功"); } }에서 세션 읽기 및 쓰기를 의미합니다.
위 내용은 SpringBoot가 SpringSession을 통합하여 분산 로그인을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!