1. setup
$ quasar new boot error-handler
2. quasar.config.js EDIT
boot: [
'firebase',
'error-handler', // 추가
],
3. boot/error-handler.js
import { boot } from 'quasar/wrappers';
import { Notify } from 'quasar';
import { getErrorMessage } from 'src/utils/firebase/error-message';
export default boot(async ({ app }) => {
app.config.errorHandler = (err, instance, info) => {
console.log('### app.config.errorHandler ###');
console.log('err: ', err);
console.log('instance: ', instance);
console.log('info: ', info);
Notify.create(getErrorMessage(err.code));
};
});
4. utils/firebase/error-message.js
import ERROR_CODE_JSON from './error-code.json';
export const getErrorMessage = (code) => ERROR_CODE_JSON[code] || `관리자에게 문의해주세요.(${code})`;
5. utils/firebase/error-code.json
{
"auth/invalid-email": "email 사용자 속성에 제공된 값이 잘못되었습니다. 이 값은 문자열 이메일 주소여야 합니다.",
"auth/missing-password": "누락된 비밀번호",
"auth/wrong-password": "잘못된 비밀번호 (구글 계정으로 로그인 해보시겠어요?)"
}
6. utils/validate-rules.js
const validateRequired = val => !!val || '필수값 입니다!';
const validateEmail = val => {
const reg =
/^(?=[a-zA-Z0-9@._%+-]{6,254}$)[a-zA-Z0-9._%+-]{1,64}@(?:[a-zA-Z0-9-]{1,63}\.){1,8}[a-zA-Z]{2,63}$/;
return reg.test(val) || '이메일 형식이 아닙니다';
};
const validatePassword = val => {
const reg = /^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,15}$/;
return (
reg.test(val) ||
'비밀번호는 영문, 숫자, 특수기호 조합 8자리 이상 입력하세요'
);
};
const validatePasswordConfirm = (password, passwordConfirm) =>
password === passwordConfirm || '비밀번호 값이 일치하지 않습니다!';
export {
validateRequired,
validateEmail,
validatePassword,
validatePasswordConfirm,
};