diff --git a/.env b/.env new file mode 100644 index 0000000..baee26e --- /dev/null +++ b/.env @@ -0,0 +1 @@ +VUE_APP_BASE_API = 'http://127.0.0.1:2900' diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..7b4fc4f --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +dist/*.js +src/assets +tests/unit/coverage diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..b2d5e89 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,54 @@ +module.exports = { + root: true, + env: { + node: true + }, + extends: [ + 'plugin:vue/essential', + '@vue/standard', + '@vue/typescript/recommended' + ], + parserOptions: { + ecmaVersion: 2020 + }, + rules: { + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/member-delimiter-style': ['error', + { + multiline: { + delimiter: 'none' + }, + singleline: { + delimiter: 'comma' + } + }], + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'space-before-function-paren': ['error', 'never'], + 'vue/array-bracket-spacing': 'error', + 'vue/arrow-spacing': 'error', + 'vue/block-spacing': 'error', + 'vue/brace-style': 'error', + 'vue/camelcase': 'error', + 'vue/comma-dangle': 'error', + 'vue/component-name-in-template-casing': ['error', 'kebab-case'], + 'vue/eqeqeq': 'error', + 'vue/key-spacing': 'error', + 'vue/match-component-file-name': 'error', + 'vue/object-curly-spacing': 'error' + }, + overrides: [ + { + files: [ + '**/__tests__/*.{j,t}s?(x)', + '**/tests/unit/**/*.spec.{j,t}s?(x)' + ], + env: { + jest: true + } + } + ] +} diff --git a/src/api/users.ts b/src/api/users.ts index 81e0e9e..45601b3 100644 --- a/src/api/users.ts +++ b/src/api/users.ts @@ -2,20 +2,20 @@ import request from '@/utils/request' export const getUserInfo = (data: any) => request({ - url: '/users/info', + url: '/user/info', method: 'post', data }) export const login = (data: any) => request({ - url: '/users/login', + url: '/user/login', method: 'post', data }) export const logout = () => request({ - url: '/users/logout', + url: '/user/logout', method: 'post' }) diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 4485df6..5fef2c7 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -49,8 +49,9 @@ class User extends VuexModule implements IUserState { let { username, password } = userInfo username = username.trim() const { data } = await login({ username, password }) - setToken(data.accessToken) - this.SET_TOKEN(data.accessToken) + console.log(data); + setToken(data.token) + this.SET_TOKEN(data.token) } @Action @@ -66,16 +67,17 @@ class User extends VuexModule implements IUserState { throw Error('GetUserInfo: token is undefined!') } const { data } = await getUserInfo({ /* Your params here */ }) + console.log(data); if (!data) { throw Error('Verification failed, please Login again.') } - const { roles, name, avatar, introduction } = data.user + const { roles, showname, avatar, introduction } = data // roles must be a non-empty array if (!roles || roles.length <= 0) { throw Error('GetUserInfo: roles must be a non-null array!') } this.SET_ROLES(roles) - this.SET_NAME(name) + this.SET_NAME(showname) this.SET_AVATAR(avatar) this.SET_INTRODUCTION(introduction) } diff --git a/src/utils/request.ts b/src/utils/request.ts index e372741..bded874 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -12,8 +12,9 @@ service.interceptors.request.use( (config) => { // Add X-Access-Token header to every request, you can add other custom headers here if (UserModule.token) { - config.headers['X-Access-Token'] = UserModule.token + config.headers['authorization'] = 'Bearer ' + UserModule.token } + config.headers['Content-Type'] = 'application/json' return config }, (error) => { @@ -25,15 +26,15 @@ service.interceptors.request.use( service.interceptors.response.use( (response) => { // Some example codes here: - // code == 20000: success + // code == 0: success // code == 50001: invalid access token // code == 50002: already login in other place // code == 50003: access token expired // code == 50004: invalid user (user not exist) - // code == 50005: username or password is incorrect + // code == 10: username or password is incorrect // You can change this part for your own usage. const res = response.data - if (res.code !== 20000) { + if (res.code ) { Message({ message: res.message || 'Error', type: 'error', diff --git a/src/views/login/index.vue b/src/views/login/index.vue index a68b88b..1606226 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -62,7 +62,6 @@
username: admin - password: any
@@ -99,7 +98,7 @@ export default class extends Vue { private loginForm = { username: 'admin', - password: '111111' + password: '7654321' } private loginRules = {