qqLoginStep1.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const API = require("../../../lib/API")
  2. const { BaseStdResponse } = require("../../../BaseStdResponse")
  3. const Redis = require('../../../plugin/DataBase/Redis')
  4. const EmailTemplate = require('../../../plugin/Email/emailTemplate')
  5. // 发送邮箱验证码
  6. class qqLoginStep1 extends API {
  7. constructor() {
  8. super()
  9. this.setMethod("POST")
  10. this.setPath("/User/qqLoginStep1")
  11. }
  12. async onRequest(req, res) {
  13. const { qq } = req.body
  14. if ([qq].some(value => value === '' || value === null || value === undefined))
  15. return res.json({
  16. ...BaseStdResponse.MISSING_PARAMETER
  17. })
  18. if(String(qq).length < 6 || String(qq).length > 10)
  19. return res.json({
  20. ...BaseStdResponse.ERR,
  21. msg: '请输入正确的QQ号'
  22. })
  23. const email = `${qq}@qq.com`
  24. const code = Math.random().toFixed(6).slice(-6)
  25. try {
  26. await Redis.set(`email:${email}`, code, {
  27. EX: 600
  28. })
  29. } catch (err) {
  30. this.logger.error(`发送邮箱验证码失败!${err.stack}`)
  31. return res.json({
  32. ...BaseStdResponse.SMS_SEND_FAIL,
  33. msg: '请检查邮箱格式后再试!'
  34. })
  35. }
  36. res.json({
  37. ...BaseStdResponse.OK
  38. })
  39. // 先返回后发送
  40. EmailTemplate.checkEmail(email, code)
  41. }
  42. }
  43. module.exports.qqLoginStep1 = qqLoginStep1