Commit 42f40dbb by zhanghui1

未完成错误版

parent 8e97b441
......@@ -17,7 +17,7 @@ import axios from 'axios';
// let regExp = new RegExp('\{'+_key+'\}', 'igm');
// url = url.replace(regExp, value);
// }
// // 获取token
// let access_token = localStorage.getItem('access_token');
// return new Promise((resolve, reject) => {
......@@ -93,7 +93,7 @@ import axios from 'axios';
// break;
// }
// }
// lolpool && lolpool.$message && lolpool.$message.error(errorMsg, 5);
// });
// });
......@@ -111,59 +111,88 @@ import axios from 'axios';
// }
export const apiErrMap = (errNo, errMsg) => {
if (errNo == 0) {
return {
errNo: 0,
errMsg: ''
};
}
if (errNo == -1) {
return {
errNo: -1,
errMsg
};
}
// todo: 翻译
const errMap = new Map()
.set(100, '步骤不正确')
.set(1000, '请输入验证码')
.set(1001, '验证码错误')
.set(1010, '用户已存在')
.set(1011, '用户不存在')
.set(1012, '用户被锁定')
.set(1013, '登录次数过多')
.set(1014, '密码错误')
.set(1015, 'invalid totp code')
.set(1020, '验证码过多')
.set(1021, '无效手机号')
.set(1022, '邮箱地址无效')
.set(1023, '电话号码不支持')
.set(1024, 'sms rate limited');
errMsg = errMap.get(errNo);
if (errMsg) {
return {
errNo,
errMsg
}
}
if (errNo == 0) {
return {
errNo: 0,
errMsg: ''
};
}
if (errNo == -1) {
return {
errNo: -1,
errMsg
};
}
// todo: 翻译
const errMap = new Map()
.set(100, '步骤不正确')
.set(1000, '请输入验证码')
.set(1001, '验证码错误')
.set(1010, '用户已存在')
.set(1011, '用户不存在')
.set(1012, '用户被锁定')
.set(1013, '登录次数过多')
.set(1014, '密码错误')
.set(1015, 'invalid totp code')
.set(1020, '验证码过多')
.set(1021, '无效手机号')
.set(1022, '邮箱地址无效')
.set(1023, '电话号码不支持')
.set(1024, 'sms rate limited');
errMsg = errMap.get(errNo);
if (errMsg) {
return {
errNo,
errMsg: '网络错误'
errNo,
errMsg
}
}
return {
errNo,
errMsg: '网络错误'
}
}
export const isEmailAddress = (str) => {
return new RegExp('^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$').test(str);
return new RegExp('^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$').test(str);
}
export const isVerifyCode = (str) => {
return new RegExp('^[a-z0-9A-Z]{4}$').test(str);
return new RegExp('^[a-z0-9A-Z]{4}$').test(str);
}
export const api = {
// 邮箱注册api
'post-register-email-start': '/register/email/start',
'post-register-email-verify-code': '/register/email/verify-code',
'post-register-email-password': '/register/email/password',
// 手机注册api
'post-register-mobile-start': '/register/mobile/start',
'post-register-mobile-verify-code': '/register/mobile/verify-code',
'post-register-mobile-password': '/register/mobile/password',
// 登录
'post-login-start': '/login/start',
'post-login-mobile': '/login/start/mobile',
'post-login-password': '/login/password',
'post-login-totp': '/login/totp',
'post-login-code': '/login/code',
// 重置密码
'post-reset-start': '/reset/start',
'post-reset-send-code': '/reset/send-code',
'post-reset-verify': '/reset/verify',
'post-reset-password': '/reset/password',
// 登出
'get-logout-do': '/logout/do',
// 获取用户信息
'get-userinfo': '/userinfo',
}
// export const getServices = (serviceName) => {
// }
\ No newline at end of file
// }
......@@ -41,7 +41,7 @@
import { mapState } from 'vuex'
import countryInfo from './country_info.json'
import captcha from './captcha.vue'
import { apiErrMap, isEmailAddress, isVerifyCode } from './helpers.js';
import { apiErrMap, isEmailAddress, isVerifyCode, api } from './helpers.js';
export default {
components: {
captcha
......@@ -108,7 +108,7 @@ export default {
email = this.form.email;
const { data: accountResponse } = await this.$axios
.post(config.apiDomain + config.api['post-login-start'], {
.post(this.UC_BASEURL+'/auth/api' + api['post-login-start'], {
captcha: this.showEmailCaptcha ? this.form.captcha : '', // todo: 登录验证码
email,
type: 'email'
......@@ -127,7 +127,7 @@ export default {
}
const { data: passwordResponse } = await this.$axios
.post(config.apiDomain + config.api['post-login-password'], {
.post(this.UC_BASEURL + "/auth/api" + api['post-login-password'], {
password: this.form.password
});
......@@ -154,7 +154,7 @@ export default {
email = this.form.country + '|' + this.form.email;
const { data: accountResponse } = await this.$axios
.post(config.apiDomain + config.api['post-login-start'], {
.post(apiDomain + '/auth/api' + api['post-login-start'], {
captcha: this.showMobileCaptcha ? this.form.captcha : '', // todo: 登录验证码
email,
type: 'mobile'
......@@ -174,7 +174,7 @@ export default {
}
const { data: passwordResponse } = await this.$axios
.post(config.apiDomain + config.api['post-login-password'], {
.post(apiDomain + '/auth/api' + api['post-login-password'], {
password: this.form.password
});
......@@ -187,7 +187,7 @@ export default {
}
// 获取用户信息
const userinfo = await this.$store.dispatch("Auth/fetchUser");
const userinfo = await this.$store.dispatch("fetchUser");
this.showLoading = false;
// 跳转用户中心
......
import Vue from 'vue';
import Vuex from 'vuex';
import {api} from '@/components/ucenter/helpers.js';
Vue.use(Vuex);
import dictionaries from '@/utils/dictionaries.js'; //字典
......@@ -27,6 +28,7 @@ const state = {
tab_bar: 0,
UC_BASEURL: 'https://ucdev1212.blockin.com',
user: null,
}
const mutations = {
setEnterPannel(state, v) {
......@@ -57,18 +59,71 @@ const mutations = {
setLanguage(state, v) {
state.language = v
localStorage.setItem("language", v);
},
FETCH_USER_SUCCESS(state, { user }) {
window.config.user = user;
state.user = user;
},
FETCH_USER_FAILURE(state) {},
LOGOUT(state) {
state.user = null
},
UPDATE_USER(state, { user }) {
state.user = user
}
}
const getters = {
// count: function(state) {
// return state.count += 100;
// }
user: state => {
return state.user
},
check: state => {
let hasLogged = state.user && Boolean(state.user.uid);
if (!hasLogged) {
hasLogged = Boolean(JSON.parse(window.config.register));
}
return hasLogged;
}
}
const actions = {
// addAction(context) {
// context.commit('add', 10)
// }
async fetchUser({commit}) {
try {
const { data } = await axios
.get(config.apiDomain + api['get-userinfo']);
if (data.err_no) {
throw new Error('get userinfo fail');
}
commit('FETCH_USER_SUCCESS', {
user: data.data.userinfo
});
return data.data.userinfo;
} catch (e) {
commit('FETCH_USER_FAILURE')
return null;
}
},
updateUser({
commit
}, payload) {
commit('UPDATE_USER', payload)
},
async logout({
commit
}) {
try {
await axios.get('/logout')
} catch (e) {}
commit('LOGOUT')
}
}
export default new Vuex.Store({
state,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment