-import{getToken}from'@/utils/auth'// get token from cookie
+// get token from cookie
+import{getToken}from'@/utils/auth'importgetPageTitlefrom'@/utils/get-page-title'import{Message}from'element-ui'-importNProgressfrom'nprogress'// progress bar
-import'nprogress/nprogress.css'// progress bar style
+importKeycloakfrom'keycloak-js'+// progress bar
+importNProgressfrom'nprogress'+// progress bar style
+import'nprogress/nprogress.css'importrouterfrom'./router'importstorefrom'./store'...constwhiteList=['/login','/auth-redirect']// no redirect whitelist
+constinitOptions={+url:process.env.VUE_APP_KEYCLOAK_OPTIONS_URL,+realm:process.env.VUE_APP_KEYCLOAK_OPTIONS_REALM,+clientId:process.env.VUE_APP_KEYCLOAK_OPTIONS_CLIENTID,+onLoad:process.env.VUE_APP_KEYCLOAK_OPTIONS_ONLOAD+}++constkeycloak=newKeycloak(initOptions)+router.beforeEach(async(to,from,next)=>{// start progress bar
NProgress.start()// remove token and go to login page to re-login
awaitstore.dispatch('user/resetToken')Message.error(error||'HasError')-next(`/login?redirect=${to.path}`)+// next(`/login?redirect=${to.path}`)
+next(`/?redirect=${to.path}`)NProgress.done()}}next()}else{// other pages that do not have permission to access are redirected to the login page.
-next(`/login?redirect=${to.path}`)-NProgress.done()+keycloak.init({onLoad:initOptions.onLoad,checkLoginIframe:false}).then(asyncauthenticated=>{+if(!authenticated){+console.log('notauth')+window.location.reload()+return+}else{+// await store.dispatch('user/keycloakLogin', keycloak.idToken)
+awaitstore.dispatch('user/keycloakLogin',keycloak)+next(`/?redirect=${to.path}`)+NProgress.done()+}+}).catch(error=>{+console.log('AuthenticatedFailed',error)+})+// next(`/login?redirect=${to.path}`)
+// NProgress.done()
}}})
src/store/getters.js
代码
1
2
3
4
5
6
7
8
department: state => state.user.department,
roles: state => state.user.roles,
permission_routes: state => state.permission.routes,
- errorLogs: state => state.errorLog.logs
+ errorLogs: state => state.errorLog.logs,
+ keycloak: state => state.user.keycloak
}
export default getters