authentication MySQL ① : MySQL + node.js 로 인증 구현 (setting)
사용자에 대한 정보를 배열에 저장했다.
배열에 저장하는 것은 메모리에 저장하는 것이고, 우리의 시스템을 종료하면 사라지는 휘발성 데이터이다.
이를 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 테이블의 구조를 확인할 수 있다.
이제 데이터 베이스에 대한 준비는 끝났다.
애플리케이션을 만들면서 테이블에 데이터를 추가하고, 테이블에 추가된 데이터를 꺼내오는 과정을 통해서 인증 작업의 과정을 계속해서 배울 것이다.