소셜로그인 후 2차 정보 생성 구현하기
소셜로그인으로는 해당 유저의 모든 정보를 입력하기에 한계가 있으므로 2차 정보를 인증하기 위한 로직을 구현해보려고 합니다.
우선, 소셜로그인 후 일반 로그인을 위한 아이디와 비밀번호가 자동적으로 생성하는 로직을 구현해볼 예정입니다.
순서
- 소셜 로그인을 통한 회원가입
- 일반 로그인을 위한 아이디와 패스워드 자동생성
- 아이디 - UUID 사용
- 패스워드 - 무작위 생성 or 암호화된 해시값 생성
- 이후, 일반 로그인 방식으로 구현 가능 (보안을 위해 추가 작업 필요 - 비밀번호 유효기간 설정 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();
마지막으로, 생성된 아이디와 함께 일반 로그인을 위한 패스워드를 무작위 생성하거나 암호화된 해시값을 생성하여 데이터베이스에 저장합니다.