๐Ÿ“Œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ

ํ•™๊ต ์„ ํƒ -> ํ•ด๋‹น ํ•™๊ต ์ด๋ฉ”์ผ ๋’ท๋ถ€๋ถ„(์˜ˆ๋ฅผ ๋“ค์–ด @korea.ac.kr) ํ™•์ธ -> ์ผ์น˜ํ•œ๋‹ค๋ฉด ์ž…๋ ฅํ•œ ์ด๋ฉ”์ผ๋กœ ๋ฉ”์ผ ์ „์†ก -> ์ธ์ฆ

์ด๋Ÿฐ ๋กœ์ง์œผ๋กœ ํ•™๊ต ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

firebase๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฉ”์ผ ์ธ์ฆ๋„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 ๐Ÿ“Œ ์ด๋ฉ”์ผ ์ „์†ก ์ฝ”๋“œ

// ๋กœ๊ทธ์ธ ๋ฐ ๋ฉ”์ผ ์ „์†ก
const sentEmail = await signInWithEmailAndPassword(firebaseAuth, email, password)
  .then(() => {
    sendEmailVerification(firebaseAuth.currentUser);
    return { err: false };
  })
  .catch((e) => {
    console.log(e);
    return { err: true, error: e };
  });

if (sentEmail.err) {
  return res
    .status(statusCode.INTERNAL_SERVER_ERROR)
    .send(util.fail(statusCode.INTERNAL_SERVER_ERROR, 
    		responseMessage.SEND_VERIFICATION_EMAIL_FAIL));
}

 

 ๐Ÿ“Œ ์ธ์ฆ ์—ฌ๋ถ€ ํ™•์ธ ์ฝ”๋“œ

const userFirebase = await signInWithEmailAndPassword(firebaseAuth, email, password)
  .then((user) => user)
  .catch((e) => {
    console.log(e);
    return { err: true, error: e };
  });
  
  ...
  
const {
  user: { uid: firebaseId, emailVerified: isEmailVerified },
} = userFirebase;
// const firebaseId = userFirebase.user.uid;
// const isEmailVerified = userFirebase.user.emailVerified; ์™€ ๋™์ผ

if(!isEmailVerfied) {
	// ์ด๋ฉ”์ผ ์ธ์ฆ์ด ๋˜์ง€ ์•Š์€ ์œ ์ €์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ
}

์ธ์ฆ ์—ฌ๋ถ€๋Š” ๋กœ๊ทธ์ธ ์ •๋ณด์˜ emailVerifed๋ฅผ ๊ฐ€์ง€๊ณ  ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค.

 

 ๐Ÿ“Œ ์ด๋ฉ”์ผ ์ „์†ก์—์„œ ์–ด๋ ค์› ๋˜ ์ 

serverless ํ™˜๊ฒฝ์ด ์•„๋‹ˆ๋ผ ์„œ๋ฒ„์ธก์—์„œ ์ด๋ฉ”์ผ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธ์ด ๋˜์–ด์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ ๋กœ๊ทธ์ธ์„ ์‹œํ‚ค๊ณ  ์ด๋ฉ”์ผ์„ ์ „์†กํ•ด์•ผ ํ•œ๋‹ค.

 

signInWithEmailAndPassword๋กœ ๋กœ๊ทธ์ธ์„ ์‹œํ‚ค๊ณ  ๊ทธ ์ดํ›„ sendEmailVerification์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ๋ฉ”์ผ์„ ๋ณด๋‚ธ๋‹ค.

+ Recent posts