Parse에서 verifyEmail 어떻게하나요?

회원가입시 이메일 확인을 위해 토큰을 생성하고 이것을 링크를 통해 이메일을 검증 하고 싶은데 어떻게 하나요?

메일건 어답터를 붙였고 이메일 템플릿 콜백에서 인자로 넘어오는 유저객체를 확인해보니까 이메일 인증을 위한 토큰이 만들어져서 넘어오더라구요.

이 토큰을 누가 만들었은지 그리고 어디에 저장되어 있는지 확인을 위해 몽고디비를 디벼봐도 없고 코드를 보니 UserControl 객체에서 생성하고 파스서버의 메모리 캐시에 들고 있는것 같은데,…

뭔가 인증메소드가 만들어져 있을것도 같은데 못 찾겠네요. 일단 코드를 더 디벼보기전에 질문을 던져봅니다

자체 해결했습니다.

이메일 확인 링크를 아래와 같은 형식으로만 만들어주면 파스서버가 알아서 해주네요.

confirmLink = `${SERVER_URL}/apps/${APP_ID}/verify_email?token=${token}&username=${username}`
1 Like

참고로 이메일 템플릿을 바꾸려면 EmailAdaptersendPasswordResetEmail를 손보면 됩니다.

인증이나 비밀번호를 바꾸는 웹페이지를 바꾸려면 parse생성시에 옵션에서 지정하면 됩니다.

var api = new ParseServer({
  // ...중략
  customPages : {
    choosePassword: YOUR_PUBLIC_HTMLPATH_+'/choosePassword',
    passwordResetSuccess: YOUR_PUBLIC_HTMLPATH+'/password_reset_success.html'
  }
);
1 Like

혹시 파스서버에서 이메일을 보내기전에 훅킹할수있는 방법이 있을까요?

가령 페이스북으로 로그인했으면 이메일인증이 이미 되어 들어오기 때문에 따로 인증을 할필요가 없을것 같아서요.

이메일 인증 필수 옵션을 켜두면 페이스북으로 회원가입(+로그인)해도 인증메일이 발송되나요?

이때 발송안하고 싶으신거고요?

처음에 User를 생성할 때 emailVerified를 True로 하면 메일 발송이 스킵되지 않던가요?

아하!! 그럼 BeforeSave에서 페북으로 로그인한 경우에 emailVerified를 true로 넣어주면 되겠네요.