diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/UserController.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/UserController.java
index 4cfb3f1..84a7940 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/UserController.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/UserController.java
@@ -43,6 +43,10 @@
     private String rootUserName;
     @Value("${admin.root.user.password:}")
     private String rootUserPassword;
+    //make session timeout configurable
+    //default to be an hour:1000 * 60 * 60
+    @Value("${admin.check.sessionTimeoutMilli:3600000}")
+    private long sessionTimeoutMilli;
 
     @RequestMapping(value = "/login", method = RequestMethod.GET)
     public String login(@RequestParam String userName, @RequestParam String password) {
@@ -69,7 +73,7 @@
 
     @Scheduled(cron= "0 5 * * * ?")
     public void clearExpiredToken() {
-        tokenMap.entrySet().removeIf(entry -> entry.getValue() == null || System.currentTimeMillis() - entry.getValue().getLastUpdateTime() > 1000 * 60 * 15);
+        tokenMap.entrySet().removeIf(entry -> entry.getValue() == null || System.currentTimeMillis() - entry.getValue().getLastUpdateTime() > sessionTimeoutMilli);
     }
 
     public static class User {
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/interceptor/AuthInterceptor.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/interceptor/AuthInterceptor.java
index a9cf6cc..ecc6e57 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/interceptor/AuthInterceptor.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/interceptor/AuthInterceptor.java
@@ -35,12 +35,11 @@
 public class AuthInterceptor extends HandlerInterceptorAdapter {
     @Value("${admin.check.authority:true}")
     private boolean checkAuthority;
-
+    
     //make session timeout configurable
     //default to be an hour:1000 * 60 * 60
     @Value("${admin.check.sessionTimeoutMilli:3600000}")
     private long sessionTimeoutMilli;
-
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         if (!(handler instanceof HandlerMethod) || !checkAuthority) {
diff --git a/dubbo-admin-server/src/main/resources/application.properties b/dubbo-admin-server/src/main/resources/application.properties
index a34f434..01e2943 100644
--- a/dubbo-admin-server/src/main/resources/application.properties
+++ b/dubbo-admin-server/src/main/resources/application.properties
@@ -31,6 +31,9 @@
 admin.config-center.group=dubbo
 admin.metadata-report.group=dubbo
 
+#session timeout, default is one hour
+admin.check.sessionTimeoutMilli=3600000
+
 #namespace used by nacos
 admin.registry.namespace=public
 admin.config-center.namespace=public
diff --git a/dubbo-admin-ui/src/Login.vue b/dubbo-admin-ui/src/Login.vue
index e462bf1..c9e18f0 100644
--- a/dubbo-admin-ui/src/Login.vue
+++ b/dubbo-admin-ui/src/Login.vue
@@ -85,7 +85,13 @@
           if (response.status === 200 && response.data) {
             localStorage.setItem('token', response.data)
             localStorage.setItem('username', userName)
-            this.$router.replace('/')
+            //login and redirect
+            let redirect = this.$route.query.redirect
+            if(redirect) {
+                this.$router.replace(redirect)
+            } else {
+                this.$router.replace('/')
+            }
           } else {
             vm.$notify('Username or password error,please try again')
           }
diff --git a/dubbo-admin-ui/src/components/http-common.js b/dubbo-admin-ui/src/components/http-common.js
index 00a3967..30946a8 100644
--- a/dubbo-admin-ui/src/components/http-common.js
+++ b/dubbo-admin-ui/src/components/http-common.js
@@ -41,7 +41,12 @@
     localStorage.removeItem('token')
     localStorage.removeItem('username')
     Vue.prototype.$notify.error(i18n.t('authFailed'))
-    router.push({ path: 'login' })
+    let paths = location.href.split('#')
+    if (paths.length > 1 && paths[1].startsWith('/login')) {
+      // avoid splicing multiple redirects
+      return
+    }
+    router.push({path: 'login', query: {redirect: paths.length === 1 ? '/' : paths[1]}})
   } else if (error.response.status >= HttpStatus.BAD_REQUEST) {
     Vue.prototype.$notify.error(error.response.data.message)
   }
