ECEtaskHelper: 시간표 페이지 (SchedulePage) 구성하기(2) - 과목 검색/담기/추가/삭제
·
Side Project/중단
로그인, 로그아웃, 세션 유지까지 구현이 끝났으니 이제 본격적으로 시간표 페이지를 구성한다. 일전에 테스트를 위한 subjectInfoPage까지 구성했는데, 이 페이지는 개설과목정보를 한눈에 보는 페이지로 남겨두었다.  css를 살짝 수정해. 중앙페이지 중앙에 배치하도록 하였고, 추후 필요에 따라 검색 기능 등을 추가할 수 있을 것 같다.  다음으로 시간표 페이지인데, 아래 이미지처럼 구상하였다. 검색창을 통해 과목명을 검색하면 검색결과가 아래 테이블에 나타난다. 담기 버튼을 클릭하면 그 아래 테이블이 추가되며, 이 테이블들은 과목마다 별도로 생성된다. 그리고 체크박스로 선택하면 오른쪽 공간의 시간표에 배치되는 구조이다. 이렇게 미리 관심있는 과목을 담아두고, 과목마다 즉각적으로 시간표에 반영하여 시간..
ECEtaskHelper: 소셜 로그인 기능 구현하기(5) (React + SpringBoot + OAuth2.0 + MySQL) 네비게이션 바에 로그인 정보 표기/로그아웃
·
Side Project/중단
네비게이션 바의 login 부분을 로그인한 계정의 정보를 표기하는 기능과 로그아웃 기능을 추가하고자 한다. 기존 HomePage.js에서 로그인한 정보를 표기하고 있는데, 이를 네비게이션 바에서 표기하도록 하는 것이다.  로그인 이후에는 로그아웃 전에는 로그인페이지로 돌아갈 수 없게하는 기능도 구현해보려 한다.  기존의 HomePage.js에서는 다음과 같은 코드를 통해 로그인 정보를 불러왔다.// 사용자 정보를 가져오는 함수const fetchUserInfo = async () => { try { const response = await axios.get('http://localhost:8080/oauth/user-info'); setUserInfo(response.dat..
ECEtaskHelper: 소셜 로그인 기능 구현하기(4) (React + SpringBoot + OAuth2.0 + MySQL) 네비게이션 바 및 로그인페이지 UI
·
Side Project/중단
기존의 NavBar은 단순히 페이지 상단에 링크만 추가했는데, 이 NavBar을 좌측에 수직으로 배치하고, 아이콘 추가, 로그인 로그아웃 추가, 그리고 로그인 시 로그인 링크 대신 회원정보를 표기하도록 구현하려 한다. 그런데 쓰다보니 글이 좀 길어지는 느낌이라 이 포스트에서는 UI 구현까지만 하고, 다음 포스트에서 회원정보를 네비게이션 바에 표기및 로그아웃을 구현해보려 한다. 우선 아이콘과 함께 링크를 표기하기 위해 react-icons를 설치했다. packages.json"react-icons": "^5.2.1", 리액트에서 제공하는 아이콘들로, 아래 참고자료에 링크를 첨부하였다. 그리고 다음과 같이 아이콘들을 링크 텍스트 옆에 추가했다.  나중에 텍스트도 한글로 통일해야지. ..
ECEtaskHelper: 소셜 로그인 기능 구현하기(3) (React + SpringBoot + OAuth2.0 + MySQL) 로그인 유지 - 세션기반
·
Side Project/중단
로그인을 유지하는데에는 두가지 방법이 있다. 첫번째는 세션 기반의 인증, 두번째는 JWT 기반의 인증이다.  세션 기반 인증과 JWT 기반 인증에 대해 간략히 정리해보자. 세션 기반 인증작동 원리사용자가 로그인: 사용자가 로그인하면, 서버는 사용자에 대한 세션을 생성하고, 세션 ID를 클라이언트에게 전달.세션 ID 저장: 세션 ID는 클라이언트의 쿠키에 저장.요청 시 세션 ID 전송: 이후의 모든 요청에서 클라이언트는 이 세션 ID를 쿠키를 통해 서버로 전송.서버에서 세션 관리: 서버는 요청에 포함된 세션 ID를 기반으로 세션 데이터를 확인하고, 사용자 정보를 조회.특징상태 유지: 서버는 로그인 상태를 세션 데이터로 유지.서버에 상태 저장: 서버는 각 사용자의 세션 데이터를 저장하고 관리.세션 무효화 가..
ECEtaskHelper: 소셜 로그인 기능 구현하기(2) (React + SpringBoot + OAuth2.0 + MySQL) 로그인 정보 표기
·
Side Project/중단
로그인이 제대로 되었는지 테스트를 위해 작성했던 리디렉션페이지들로 이동하지 않고, 로그인 직후 HomePage로 이동해 로그인한 회원 정보를 표기해보겠다.  우선  LoginPage.js를 수정한다.// src/main/frontend/src/pages/HomePage.jsimport React, { useEffect, useState } from 'react';import { useLocation, useNavigate } from 'react-router-dom';import axios from 'axios';function HomePage() { const [hello, setHello] = useState(''); const location = useLocation(); const..
ECEtaskHelper: 소셜 로그인 기능 구현하기(1) (React + SpringBoot + OAuth2.0 + MySQL)
·
Side Project/중단
시간표 페이지를 구성하던 중, 결국 데이터가 저장되어야 나중에 불러올 때 의미가 있기 때문에 로그인 기능을 먼저 구현하고자 한다. 원래 계정은 나중에 추가하려 했는데 이참에 구현해보았다. 정말 무수한 실패와 버그를 거쳐 간신히 정리하느라 며칠을 쓴건지. 로그인 방식에는 여러가지가 있는데, SpringSecurity를 이용하는 방식은 다소 어렵고, 정보를 찾는것도 쉽지 않아서 OAuth2.0을 이용한 소셜 로그인을 이용하기로 했다. 다만 이것 역시 여러가지 문제를 겪었기 때문에, 간신히 찾아낸 글을 통해 구현하였다. [Spring] 쉬운 확장이 가능한 OAuth2.0 로그인 구현(카카오, 네이버, 구글 등) (Security 사용 X) — Shin._.Mallang (tistory.com) [Spring]..
zerogod-ai-dev
zerogod 코코딩딩