You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ju...@apache.org on 2020/06/30 00:17:29 UTC
[incubator-apisix-dashboard] branch master-vue updated: fix logo
missing problem (#288)
This is an automated email from the ASF dual-hosted git repository.
juzhiyuan pushed a commit to branch master-vue
in repository https://gitbox.apache.org/repos/asf/incubator-apisix-dashboard.git
The following commit(s) were added to refs/heads/master-vue by this push:
new edfd447 fix logo missing problem (#288)
edfd447 is described below
commit edfd447750a18594aef95dd37275c2d02201003e
Author: ko han <ha...@outlook.com>
AuthorDate: Tue Jun 30 08:17:19 2020 +0800
fix logo missing problem (#288)
* fix: miss logo in production environment
* fix: login and logout
---
package.json | 2 +-
src/layout/components/Sidebar/SidebarLogo.vue | 5 +++--
src/store/modules/user.ts | 32 +++++++++++++--------------
src/utils/request.ts | 3 ---
src/views/login/index.vue | 7 +++---
5 files changed, 23 insertions(+), 26 deletions(-)
diff --git a/package.json b/package.json
index b769c33..60c8e3a 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
"scripts": {
"serve": "concurrently \"vue-cli-service serve\"",
"lint": "vue-cli-service lint",
- "build:prod": "vue-cli-service build"
+ "build:prod": "NODE_ENV=production vue-cli-service build"
},
"dependencies": {
"axios": "^0.19.0",
diff --git a/src/layout/components/Sidebar/SidebarLogo.vue b/src/layout/components/Sidebar/SidebarLogo.vue
index 4ddf188..dc045cc 100644
--- a/src/layout/components/Sidebar/SidebarLogo.vue
+++ b/src/layout/components/Sidebar/SidebarLogo.vue
@@ -37,7 +37,7 @@
to="/"
>
<img
- src="favicon.ico"
+ :src="logoURL"
class="sidebar-logo"
>
</router-link>
@@ -48,7 +48,7 @@
to="/"
>
<img
- src="favicon.ico"
+ :src="logoURL"
class="sidebar-logo"
>
<h1 class="sidebar-title">
@@ -69,6 +69,7 @@ export default class extends Vue {
@Prop({ required: true }) private collapse!: boolean
private title = 'APISIX'
+ private logoURL = process.env.NODE_ENV === 'production' ? '/apisix/dashboard/favicon.ico' : '/favicon.ico'
}
</script>
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 95d4785..42dd340 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -23,12 +23,12 @@
*/
import { VuexModule, Module, Action, Mutation, getModule } from 'vuex-module-decorators'
-// import { login, logout, getUserInfo } from '@/api/users'
import { getToken, setToken, removeToken } from '@/utils/cookies'
import router, { resetRouter } from '@/router'
import { PermissionModule } from './permission'
import { TagsViewModule } from './tags-view'
import store from '@/store'
+import request from '@/utils/request'
export interface IUserState {
token: string
@@ -39,9 +39,15 @@ export interface IUserState {
email: string
}
+const TOKEN_KEY= "GLOBAL_APISIX_API_KEY"
+
+if (localStorage.getItem(TOKEN_KEY)) {
+ request.defaults.headers["X-API-KEY"] = localStorage.getItem(TOKEN_KEY)
+}
+
@Module({ dynamic: true, store, name: 'user' })
class User extends VuexModule implements IUserState {
- public token = getToken() || ''
+ public token = localStorage.getItem(TOKEN_KEY) || ''
public name = ''
public avatar = ''
public introduction = ''
@@ -79,23 +85,18 @@ class User extends VuexModule implements IUserState {
}
@Action
- public async Login(userInfo: { username: string, password: string}) {
- let { username, password } = userInfo
- username = username.trim()
- // TEMP: 在此处绕过登录
- // const { data } = await login({ username, password })
-
- const data = {
- accessToken: username + '-token'
- }
-
- setToken(data.accessToken)
- this.SET_TOKEN(data.accessToken)
+ public async Login(token: string) {
+ setToken(token)
+ localStorage.setItem(TOKEN_KEY, token)
+ this.SET_TOKEN(token)
+ request.defaults.headers["X-API-KEY"] = token
}
@Action
public ResetToken() {
removeToken()
+ localStorage.removeItem(TOKEN_KEY)
+ delete request.defaults.headers["X-API-KEY"]
this.SET_TOKEN('')
this.SET_ROLES([])
}
@@ -161,8 +162,7 @@ class User extends VuexModule implements IUserState {
// await logout()
removeToken()
resetRouter()
- this.SET_TOKEN('')
- this.SET_ROLES([])
+ this.ResetToken()
}
}
diff --git a/src/utils/request.ts b/src/utils/request.ts
index e730d5f..2d9bb50 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -28,9 +28,6 @@ import { Message } from 'element-ui'
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
timeout: 5000,
- headers: {
- 'X-API-KEY': localStorage.getItem('GLOBAL_API_KEY')
- }
})
service.interceptors.request.use(
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 3efe7c9..2679224 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -49,7 +49,7 @@
placeholder="Please input API KEY here"
name="apikey"
type="text"
- autocomplete="on"
+ autocomplete="off"
/>
</el-form-item>
@@ -98,9 +98,8 @@ export default class extends Vue {
private redirect?: string
private async handleLogin() {
- await UserModule.Login({ username: '', password: '' })
- localStorage.setItem('GLOBAL_API_KEY', this.loginForm.apikey)
- window.location.replace('/')
+ await UserModule.Login(this.loginForm.apikey)
+ await this.$router.replace(this.redirect || '/')
}
}
</script>