2017-10-01 1 views
-1

"오류 : 잘못된 로그인 : 535 인증 실패 : 잘못된 사용자 이름/암호"올바른 사용자 이름과 암호가 있지만이 오류가 계속 발생합니다. . 무슨 일이 ... 당신은 지정하지 않았지만 enter image description here오류 : 잘못된 로그인 : 535 인증 실패 : 노드 메일러의 사용자 이름/암호가 올바르지 않음

const sendForgotPasswordEmail = (user) => { 
    if (!user) { return; } 
    const token = user.passwordResetToken; 
    const transporter = nodemailer.createTransport({ 
     service: 'SendGrid', 
     auth: { 
     user: process.env.SENDGRID_USER, 
     pass: process.env.SENDGRID_PASSWORD 
     } 
    }); 
    const mailOptions = { 
     to: user.email, 
     from: '[email protected]', 
     subject: 'Reset your password', 
     text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\n\n 
     Please click on the following link, or paste this into your browser to complete the process:\n\n 
     http://${req.headers.host}/reset/${token}\n\n 
     If you did not request this, please ignore this email and your password will remain unchanged.\n` 
    }; 
    return transporter.sendMail(mailOptions) 
     .then(() => { 
     req.flash('info', { msg: `An e-mail has been sent to ${user.email} with further instructions.` }); 
     }); 
    }; 

    createRandomToken 
    .then(setRandomToken) 
    .then(sendForgotPasswordEmail) 
    .then(() => res.redirect('/forgot')) 
    .catch(next); 

답변

0

, 당신의 Github에서에 교차 게시 및 오류의 스크린 샷에서 문제가 사용자 이름/암호를 받고 있는지 더 구체적 인 문제가 될 수있다 Hackathon Starter을 사용할 때 오류가 발생했습니다 (SendGrid 설정 사용). 후드 아래의 프로젝트는 노드 메 일러를 사용합니다.

나는 SendGrid 및 유효한 사용자 이름/암호로 Hackathon Starter를 테스트했으며 의도 한대로 작동하므로 Hackathon Starter 또는 Nodemailer에는 문제가되지 않습니다. 그래서 특정 경우에, SendGrid가 게시 한 오류에 따라 사용자 이름과 암호가 시스템의 유효한 사용자 이름 암호와 일치하지 않는다고 응답했습니다. 다음과 같이 제안합니다 :

  1. 웹 사이트에서 SendGrid에 로그인하고 사용자 이름과 암호를 다시 확인하십시오. SendGrid가 제공하는 API 키는 사용자 이름과 암호가 아닙니다. SendGrid를 사용한 SMTP 메일 인증과는 다른 용도로 사용됩니다. SendGrid의 계정 정보에서 Username/Password를 사용해야합니다.
  2. 환경 변수가 SendGrid "username"및 "password"로 올바르게 설정되어 있는지 확인하십시오. 대부분의 경우 사용자 이름과 비밀번호에 작은 따옴표 나 큰 따옴표를 추가하지 않아도됩니다 (적어도 나를 위해 일하는 방식 임). 환경 변수가 올바르게 설정되어 있는지 확인하기 위해 코드에 다음과 같은 디버그 코드를 임시로 추가 할 수 있습니다.

    console.log "SENDGRID_USER env variable is set as:", process.env.SENDGRID_USER console.log "SENDGRID_PASSWORD env variable is set as:", process.env.SENDGRID_PASSWORD

보안 문제가 될 수 콘솔 로그에 일반 텍스트로가는 암호를 가지고 있기 때문에, 검증 후이 디버그 코드를 제거해야합니다

.

그런데 mailOptions 필드에서 from: 필드를 프로젝트의 이메일 주소/별칭 중 하나에 해당하는 유효한 이메일 주소로 변경할 수 있습니다.

+0

hackerthon 스타터와 함께 제공되는 동일한 비밀번호와 사용자 이름을 사용했지만 동일한 오류가 발생합니다. 노드 8.0에서 로컬로 실행하고 있습니까? –

+0

다른 사용자의 사용자 이름 암호를 사용하는 이유는 무엇입니까? 인터넷에 공개적으로 게시 된 사용자 이름 암호는 누구나 사용하고 남용 할 수있는 이유는 무엇입니까? 서비스 제공 업체에 계정을 만들고 서비스 약관에 동의하며 프로젝트와 함께 자리 표시 자로 게시되는 더미 사용자 이름 암호 대신 사용자 이름과 암호를 사용해야합니다. Hackathon Starter Readme - Sendgrid를 참조하십시오 : https://sendgrid.com/user/signup으로 이동하여 활성화 이메일을 통해 가입하고 계정을 확인한 다음 SendGrid 사용자 이름과 암호를 .env 파일에 입력하십시오 " – YasharF

관련 문제