register-user.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. const {
  2. postRegister,
  3. preRegisterWithPassword
  4. } = require('../../lib/utils/register')
  5. const {
  6. verifyCaptcha
  7. } = require('../../lib/utils/captcha')
  8. const {
  9. CAPTCHA_SCENE
  10. } = require('../../common/constants')
  11. /**
  12. * 注册普通用户
  13. * @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#register-user
  14. * @param {Object} params
  15. * @param {String} params.username 用户名
  16. * @param {String} params.password 密码
  17. * @param {String} params.captcha 图形验证码
  18. * @param {String} params.nickname 昵称
  19. * @param {String} params.inviteCode 邀请码
  20. * @returns
  21. */
  22. module.exports = async function (params = {}) {
  23. const schema = {
  24. username: 'username',
  25. password: 'password',
  26. captcha: 'string',
  27. nickname: {
  28. required: false,
  29. type: 'nickname'
  30. },
  31. inviteCode: {
  32. required: false,
  33. type: 'string'
  34. }
  35. }
  36. this.middleware.validate(params, schema)
  37. const {
  38. username,
  39. password,
  40. nickname,
  41. captcha,
  42. inviteCode
  43. } = params
  44. await verifyCaptcha.call(this, {
  45. captcha,
  46. scene: CAPTCHA_SCENE.REGISTER
  47. })
  48. const {
  49. user,
  50. extraData
  51. } = await preRegisterWithPassword.call(this, {
  52. user: {
  53. username
  54. },
  55. password
  56. })
  57. return postRegister.call(this, {
  58. user,
  59. extraData: {
  60. ...extraData,
  61. nickname
  62. },
  63. inviteCode
  64. })
  65. }