Post

React, NodeJS 와 MySQL 을 이용한 로그인/회원가입


express를 비롯한 Node.js의 모듈들과, React로 구현한 로그인, 회원가입 예제를 따라해볼 거다.
앞 포스팅에서 설치한 MySQL을 데이터베이스로 사용한다. (MySQL 설치 및 접속)

1. MySQL Setting

✔ mysql 접속

1
mysql> mysql -u root -p

MySQL Server 의 bin폴더로 이동하여 mysql에 접속해준다.
📁 폴더 경로 : C:\Program Files\MySQL\MySQL Server 8.0\bin

✔ 사용자 및 데이터베이스 생성

1
2
mysql> CREATE USER 사용자ID;   // 사용자 추가
mysql> CREATE USER 사용자ID@localhost IDENTIFIED BY '비밀번호';

먼저 사용할 사용자를 추가해준다. [사용자ID] 부분에 원하는 사용자ID를 입력해주면 된다.

1
2
mysql> CREATE DATABASE 생성할 데이터베이스명;   //DB 생성
mysql> SHOW DATABASES;   //생성한 DB 확인

그 다음 사용할 데이터베이스를 생성해주고 잘 생성되었는지 확인한다.

1
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 사용자ID@localhost;   //추가한 사용자에게 DB 권한 주기

사용자에게 생성한 DB의 권한을 준다.

✔ 테이블 생성

1
2
3
mysql> EXIT;
mysql> mysql -u student -p   //student 사용자로 접속
mysql> use userinfo   //생성한 DB 사용

사용자 추가와 데이터베이스 생성이 완료되었다면, root에서 나와서 추가한 사용자로 재접속을 해준다.

마지막으로 로그인에 필요한 데이터들을 생성해준다.

  • id
  • username
  • password

2. 필요 모듈 설치

✔ 리액트 설치

1
npx create-react-app [프로젝트 명]

위 명령어로 리액트 프로젝트를 생성한다.

  • mysql
  • express
  • express-session
  • express-mysql-session
  • body-parser
  • bcrypt (비밀번호를 해시 암호화 해줌)

위 필요한 모듈들을 npm을 이용하여 다운로드 해준다.

1
2
3
4
5
6
npm install express
npm install express-session
npm install express-mysql-session
npm install mysql2
npm install bcrypt
npm install body-parser

✔ 파일 생성 및 정리

image

위는 기존 파일의 모습이다. 여기서 개발에 필요한 폴더 및 파일을 생성해준다.

📂 생성 폴더 및 파일 📂

  • lib 폴더
  • lib/db.js 파일
  • lib/sessionOption.js
  • server.js 파일

image

위처럼 빨간펜 부분을 만들어주면 된다.

3. 구현

✔ server.js

✔ App.js

✔ App.css

✔ db.js

✔ sessionOption.js

4. 실행

실행 gif

완성!!😊

This post is licensed under CC BY 4.0 by the author.