소셜로그인 후 2차 정보 생성 구현하기

소셜로그인으로는 해당 유저의 모든 정보를 입력하기에 한계가 있으므로 2차 정보를 인증하기 위한 로직을 구현해보려고 합니다.

우선, 소셜로그인 후 일반 로그인을 위한 아이디와 비밀번호가 자동적으로 생성하는 로직을 구현해볼 예정입니다.

순서

  1. 소셜 로그인을 통한 회원가입
  2. 일반 로그인을 위한 아이디와 패스워드 자동생성
    1. 아이디 - UUID 사용
    2. 패스워드 - 무작위 생성 or 암호화된 해시값 생성
  3. 이후, 일반 로그인 방식으로 구현 가능 (보안을 위해 추가 작업 필요 - 비밀번호 유효기간 설정 or 이메일 인증 등)
import { v4 as uuidv4 } from 'uuid';

const id: string = uuidv4(); // generates a random UUID string

console.log(id); // outputs something like "110ec58a-a0f2-4ac4-8393-c866d813b8d1"

이 예제에서는 uuid 라이브러리에서 v4 함수를 가져와 랜덤 UUID 버전 4 문자열을 생성합니다. 그런 다음 uuidv4() 함수를 호출하여 새 UUID를 생성하고 id 변수에 저장합니다. 마지막으로 생성된 ID를 콘솔에 출력합니다.

일반 로그인을 위한 아이디와 패스워드를 자동으로 생성하는 구현을 위해, 데이터베이스에 저장할 스키마가 필요합니다.

User {
    id: string,
    username: string,
    password: string,
    ...
}

위 스키마는 아이디, 유저이름, 패스워드 필드를 가지고 있습니다. 일반 로그인을 위한 아이디와 패스워드를 자동으로 생성하고 저장하기 위해서는 이 스키마를 참고하여 데이터베이스에 저장해야 합니다.

구현 방법

우선 uuid 라이브러리를 프로젝트에 설치합니다. 이제 아래와 같이 uuid 라이브러리에서 v4 함수를 가져옵니다.

import { v4 as uuidv4 } from 'uuid';

이제 아이디를 생성하기 위해 uuidv4() 함수를 호출합니다.

const id: string = uuidv4();

마지막으로, 생성된 아이디와 함께 일반 로그인을 위한 패스워드를 무작위 생성하거나 암호화된 해시값을 생성하여 데이터베이스에 저장합니다.