/** * Created by Tao.Huang on 2016/6/14. */ 'use strict'; const api = global.yoho.API; const logger = global.yoho.logger; const aes = require('./aes-pwd'); const YOHOBUY_URL = 'http://www.yohobuy.com/'; /** * 获取地区数据 */ const getAreaDataAsync = () => { return api.get('', { method: 'app.passport.getArea' }).then(result => { if (result && result.code === 200) { result.data = result.data.map(value => { value.areaCode = `+${value.area}`; if (value.areaCode === '+86') { value.selected = true; } else { value.selected = false; } delete value.area; return value; }); return result; } else { logger.error('获取地区数据返回 code no 200'); return []; } }); }; /** * 通过邮箱找回密码 * * @param string mail 邮箱地址 */ const sendCodeToEmailAsync = (email) => { return api.get('', { method: 'app.register.backpwdByEmail', email: email }); }; /** * 根据邮箱验证码修改密码(调用www.yohobuy.com接口) * * @param string pwd 新密码 * @param string code 邮箱验证码 */ const modifyPasswordByEmailAsync = (pwd, code) => { const options = { url: `${YOHOBUY_URL}passport/back/update`, form: { pwd: pwd, 're-input': pwd, code: code }, timeout: 3000 }; return api._requestFromAPI(options); }; /** * 根据邮箱验证码修改密码(调用新接口 采用AES密码加密) * * @param string pwd 新密码 * @param string code 邮箱验证码 */ const modifyPasswordByEmailAsyncAes = (pwd, code) => { return api.get('', { code: code, newPwd: aes.aesPwd(pwd), method: 'app.register.resetPwdByCodeAES' }); }; /** * 通过手机找回密码 * * @param string mobile 手机号 * @param integer area 地区码ID */ const sendCodeToMobileAsync = (mobile, area) => { return api.get('', { mobile: mobile, area: area, method: 'app.register.sendBackpwdCodeToMobile' }); }; /** * 校验密码修改手机验证码 * * @param string mobile 手机号 * @param string code 验证码 * @param integer area 地区码ID */ const validateMobileCodeAsync = (mobile, code, area) => { area = area || 86; return api.get('', { mobile: mobile, code: code, area: area, method: 'app.register.validBackpwdCode' }); }; /** * 根据手机验证码修改密码 * * @param string mobile 手机号 * @param string token 验证手机验证码返回的token * @param integer area 地区码ID */ const modifyPasswordByMobileAsync = (mobile, token, newpwd, area) => { return api.get('', { mobile: mobile, token: token, newpwd: newpwd, area: area, method: 'app.register.changepwdByMobileCode' }); }; const modifyPasswordByMobileAsyncAes = (mobile, token, newpwd, area) => { return api.get('', { mobile: mobile, token: token, newpwd: aes.aesPwd(newpwd), area: area, method: 'app.register.changepwdByMobileCodeAES' }); }; module.exports = { getAreaDataAsync, sendCodeToEmailAsync, modifyPasswordByEmailAsync, modifyPasswordByEmailAsyncAes, sendCodeToMobileAsync, validateMobileCodeAsync, modifyPasswordByMobileAsync, modifyPasswordByMobileAsyncAes };