NodeMailer - aceleradora-TW/acelera-mais-api GitHub Wiki

Nodemailer - Troca Credenciais de Email

  • Trocar as credenciais de envio de e-mail Nodemailer - Módulo para enviar E-mails automatizados em aplicações Node.js. OAuth2 - Autenticação de segurança. Oauth2 permite que o aplicativo armazene e use tokens de autenticação em vez de credenciais de login reais. Os tokens de acesso necessários para a autenticação OAuth2 são de curta duração, portanto, precisam ser regenerados de tempos em tempos.

No Acelera Mais é usadoNodemailer e OAuth2 para enviar e-mail com a senha randômica MD5 para novos mentores. Para trocar as credenciais de envio de e-mail implementamos na aplicação seguindo os vídeos abaixo:

Na aplicação, foi criado service/nodemailer/NodemailerService.ts a implementação do nodemailer e autenticação do OAuth2

No ambiente de produção do Heroku é necessário trocar os values do:

  • NODEMAILER_EMAIL,
  • NODEMAILER_PASSWORD,
  • NODEMAILER_REDIRECT_URI,
  • NODEMAILER_CLIENT_ID,
  • NODEMAILER_CLIENT_SECRET,
  • NODEMAILER_REFRESH_TOKEN,

Como obter os values

NODEMAILER_EMAIL

  • Acessar o Google Cloud API da Aceleradora
  • Ir na aba 'Tela de Permissão OAuth' e pegar o email de usuário de teste

NODEMAILER_PASSWORD

  • Pegar a senha do usuário de teste

NODEMAILER_REDIRECT_URI

NODEMAILER_CLIENT_ID & NODEMAILER_CLIENT_SECRET

  • Na API da Aceleradora acesse a aba "Credenciais" e acesse o ID na aba "IDs do cliente OAuth 2.0"

2022-12-01 (4)

  • Após clicar, aparecerá no lado direito o ID do Cliente e a Secret do cliente

NODEMAILER_REFRESH_TOKEN

image (1)

  • Marque a caixa de confirmação "Use your own OAuth credentials" e adicione o ID do Cliente e a Secret do Cliente
  • Volte e clique no botão "authorize APIs"

image

  • Após isso você será redirecionado para a página do gmail e deverá logar com o email de usuário de teste
  • Depois você será redirecionado de volta para o oauthplayground e será gerado o "Authorization code"
  • Clique no botão "Exchange authorization code for tokens" e o "Refresh token" será gerado