diff --git a/spyder_notebook/widgets/client.py b/spyder_notebook/widgets/client.py
index b36688ff..b35cd908 100644
--- a/spyder_notebook/widgets/client.py
+++ b/spyder_notebook/widgets/client.py
@@ -135,6 +135,11 @@ def __init__(self, plugin, name):
         layout.addWidget(self.find_widget)
         self.setLayout(layout)
 
+    def add_token(self, url):
+        """Add notebook token to a given url."""
+        token_url = url + '?token={}'.format(self.token)
+        return token_url
+
     def register(self, server_info):
         """Register attributes that can be computed with the server info."""
         # Path relative to the server directory
@@ -149,15 +154,13 @@ def register(self, server_info):
         self.server_url = server_info['url']
 
         # Server token
-        self.token = server_info.get('token', '')
+        self.token = server_info['token']
 
-        # Full url used to render the notebook as a web page
-        file_arg = url_path_join('/notebooks', url_escape(self.path))
-        file_arg = file_arg.replace('/', r'%2F')
+        url = url_path_join(self.server_url, 'notebooks',
+                            url_escape(self.path))
 
-        self.file_url = url_path_join(self.server_url,
-                                   'login?token={}&next={}'.format(self.token,
-                                                                   file_arg))
+        # Set file url to load this notebook
+        self.file_url = self.add_token(url)
 
     def go_to(self, url_or_text):
         """Go to page *address*"""
@@ -186,22 +189,26 @@ def save(self):
 
     def shutdown_kernel(self):
         """Shutdown the kernel of the client."""
-        sessions_url = url_path_join(self.server_url, 'api/sessions')
+        sessions_url = self.add_token(url_path_join(self.server_url,
+                                                    'api/sessions'))
         sessions_req = requests.get(sessions_url).content.decode()
         sessions = json.loads(sessions_req)
         kernel_id = None
+
         if os.name == 'nt':
             path = self.path.replace('\\', '/')
         else:
             path = self.path
+
         for session in sessions:
             if session['notebook']['path'] == path:
                 kernel_id = session['kernel']['id']
                 break
+
         if kernel_id:
-            delete_url = url_path_join(self.server_url,
-                                       'api/kernels/',
-                                       kernel_id)
+            delete_url = self.add_token(url_path_join(self.server_url,
+                                                      'api/kernels/',
+                                                      kernel_id))
             delete_req = requests.delete(delete_url)
             if delete_req.status_code != 204:
                 QMessageBox.warning(