Juni_Dev_log

authentication MySQL ① : MySQL + node.js 로 인증 구현 (setting) 본문

Theorem (정리)/node.js

authentication MySQL ① : MySQL + node.js 로 인증 구현 (setting)

Juni_K 2020. 6. 12. 18:00

사용자에 대한 정보를 배열에 저장했다.

배열에 저장하는 것은 메모리에 저장하는 것이고, 우리의 시스템을 종료하면 사라지는 휘발성 데이터이다.

 

이를 mysql 과 같은 데이터베이스에 저장해줘야 사라지지 않고 계속 사용할 수 있다.

mysql

그렇다면, mysql 을 접속한다.

 

사용할 데이터 베이스를 선택한다. (use hc_project)

(내가 사용할 데이터 베이스는, hc_project)

 

처음 데이터베이스 설정을 할 때, 우리는 회원가입에 대한 정보를 담을 users라는 배열의 역할을 할 테이블을 생성해야 한다.

 

데이터 저장 양식을 지정해서 테이블을 생성한다.

 

create table users(
    id INT NOT NULL AUTO_INCREMENT,
    authId VARCHAR(50) NOT NULL,
    username VARCHAR(30),
    password VARCHAR(255),
    salt VARCHAR(255),
    displayName VARCHAR(50),
    PRIMARY KEY(id),
    UNIQUE(authId)
    ) ENGINE = InnoDB;
  • id : 각각의 사용자에 대한 정보를 담고 있는 행에 대한 식별자

→ INT : 정수형 , NOT NULL : 값이 없으면 안 된다, AUTO_INCREMENT : 특정 값을 입력하지 않으면, 마지막으로 입력한 값에 1씩 더하는 기능

  • authId : 어떤 방식으로 인증했는지, 인증한 사람에 대한 중요한 식별자

→ VARCHA(50) : variable character. 50글자보다 많아지면 자른다.

  • username VARCHA(30) → 30글자보다 많아지면 자른다.

  • PRIMARY KEY(id) → 중요한 키를 id로 지정한다.

  • UNIQUE (authId) → authId라는 칼럼에 값이 있다면, 그 이후로 행이 추가될 때 authId와 똑같은 값을 가지고 있는 행이 들어온다면 거절하는 기능

이처럼 코드를 작성하면 users라는 테이블이 생성되고 해당 구조의 형태를 가진 테이블이 된다.

 

DESC users를 실행하면, users 테이블의 구조를 확인할 수 있다.

 

이제 데이터 베이스에 대한 준비는 끝났다.

 

애플리케이션을 만들면서 테이블에 데이터를 추가하고, 테이블에 추가된 데이터를 꺼내오는 과정을 통해서 인증 작업의 과정을 계속해서 배울 것이다.

Comments