~☆~ 우하하!!~ 개발블로그

[소셜로그인] 소셜 로그인을 위한 회원정보 테이블 구성 본문

데이터베이스

[소셜로그인] 소셜 로그인을 위한 회원정보 테이블 구성

iwoohaha 2024. 11. 19. 17:10
반응형

테이블 이름은 users

컬럼 구성은 아래와 같다.

생성 스크립트(PostgreSQL)

CREATE TABLE public.users (
	id serial NOT NULL,
	provider_user_id varchar(255) NOT NULL,
	provider varchar(50) NOT NULL,
	email varchar(255) NULL,
	name varchar(255) NULL,
	profile_image_url varchar(255) NULL,
	created_at timestamp with time zone DEFAULT now() NOT NULL,
	updated_at timestamp with time zone DEFAULT now() NULL,
	CONSTRAINT users_pk PRIMARY KEY (id),
	CONSTRAINT users_pid_unique UNIQUE (provider_user_id)
);
COMMENT ON TABLE public.users IS '사용자';

-- Column comments

COMMENT ON COLUMN public.users.id IS '고유번호(자동증가)';
COMMENT ON COLUMN public.users.provider_user_id IS '정보제공자 고유 ID';
COMMENT ON COLUMN public.users.provider IS '정보제공자';
COMMENT ON COLUMN public.users.email IS '이메일 주소';
COMMENT ON COLUMN public.users.name IS '이름';
COMMENT ON COLUMN public.users.profile_image_url IS '프로파일 이미지 경로(URL)';
COMMENT ON COLUMN public.users.created_at IS '생성일시';
COMMENT ON COLUMN public.users.updated_at IS '최종수정일시';

구글 로그인 기능 사용시 구글이 제공하는 정보는

"sub" 의 값을 users.provider_user_id 컬럼에,
"name" 의 값을 users.name 컬럼에,
"picture" 의 값을 users.profile_image_url 컬럼에,
"email" 의 값을 users.email 컬럼에 저장하면 되겠다.

네이버 로그인 기능 사용시 네이버가 제공하는 정보는

"id" 의 값을 users.provider_user_id 컬럼에,
"profile_image" 의 값을 users.profile_image_url 컬럼에,
"name" 의 값을 users.name 컬럼에 저장하면 되겠다.

이미 사용중인 member 테이블은 diary 를 사용하기 위해서 가입한 정보(이메일)를 저장하는 용도로 변경해야 한다.

반응형