diff --git a/kalamar.conf b/kalamar.conf
index 83866f9..29d5bf6 100644
--- a/kalamar.conf
+++ b/kalamar.conf
@@ -1,15 +1,15 @@
 # api => 'http://10.0.10.51:7070/api/v0.1/'
 # api => 'http://10.0.10.13:7070/api/v0.1/'
-my $api = 'http://localhost:9999/api/v0.1/';
+my $api = 'http://localhost:9998/api/v0.1/';
 
 {
   Search => {
     engine => 'Kalamar::API',
     # IDS Kustvakt server:
-    api => $api
+    api => $ENV{'KALAMAR_API'} // $api
   },
   Kalamar => {
-    api => $api
+    api => $ENV{'KALAMAR_API'} // $api
   },
   CHI => {
     default => {
@@ -20,10 +20,10 @@
     },
     user => {
       l1_cache => {
-	driver => 'FastMmap',
-	root_dir => app->home . '/cache/usermap',
-	cache_size => '50m',
-	max_size => '50m'
+      	driver => 'FastMmap',
+	      root_dir => app->home . '/cache/usermap',
+        	cache_size => '50m',
+	        max_size => '50m'
       },
       driver => 'File',
       root_dir => app->home . '/cache/userfile',
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index 12b5ded..3f1e3bf 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -102,9 +102,19 @@
   my $navi = Mojo::File->new($self->home->child('templates','doc','navigation.json'))->slurp;
   $self->config(navi => decode_json($navi)) if $navi;
 
+  $self->log->info('API expected at ' . $self->config->{Kalamar}->{api});
 
-  # Establish routes
-  my $r = $self->routes;
+  # Establish routes with authentification
+  my $r = $self->routes->under(
+    '/' => sub {
+      my $c = shift;
+
+      if ($c->session('auth')) {
+        $c->stash(auth => $c->session('auth'));
+      };
+      return 1;
+    }
+  );
 
   # Base query route
   $r->get('/')->to('search#query')->name('index');
@@ -131,11 +141,11 @@
   $match->to('search#match_info')->name('match');
 
   # User Management
-  $r->any('/user')->to(controller => 'User');
-  $r->post('/login')->to(action => 'login')->name('login');
-  $r->get('/logout')->to(action => 'logout')->name('logout');
-  $r->any('/register')->to(action => 'register')->name('register');
-  $r->any('/forgotten')->to(action => 'pwdforgotten')->name('pwdforgotten');
+  my $user = $r->any('/user')->to(controller => 'User');
+  $user->post('/login')->to(action => 'login')->name('login');
+#  $r->get('/logout')->to(action => 'logout')->name('logout');
+#  $r->any('/register')->to(action => 'register')->name('register');
+#  $r->any('/forgotten')->to(action => 'pwdforgotten')->name('pwdforgotten');
 
   # Default user is called 'korap'
   # $r->route('/user/:user/:collection')
diff --git a/lib/Kalamar/API.pm b/lib/Kalamar/API.pm
index 84e208e..fcf1c5e 100644
--- a/lib/Kalamar/API.pm
+++ b/lib/Kalamar/API.pm
@@ -71,8 +71,10 @@
   # Check cache for total results
   my $total_results;
 
+  my $user = $c->stash('user') // '?';
+
   if (!$index->no_cache &&
-	defined ($total_results = $c->chi->get($index->_api_cache))) {
+	defined ($total_results = $c->chi->get($user . $index->_api_cache))) {
 
     # Set total results from cache
     $index->total_results($total_results);
@@ -86,7 +88,7 @@
   $index->api_request($url->to_string);
 
   # Create new user agent and set timeout to 2 minutes
-  my $ua = $c->ua;
+  my $ua = $c->user->ua;
   $ua->inactivity_timeout(120);
 
   # Debugging
@@ -97,10 +99,10 @@
 
     $ua->get(
       $url => sub {
-	my $tx = pop;
-	$self->_process_response('matches', $index, $tx);
-	weaken $index;
-	return $cb->($index);
+        my $tx = pop;
+        $self->_process_response('matches', $index, $tx);
+        weaken $index;
+        return $cb->($index);
       });
   }
 
@@ -138,7 +140,7 @@
   $url->path('search');
 
   # Create new user agent and set timeout to 30 seconds
-  my $ua = $c->ua; # Mojo::UserAgent->new;
+  my $ua = $c->user->ua; # Mojo::UserAgent->new;
   $ua->inactivity_timeout(30);
 
   # Build transaction
@@ -198,7 +200,7 @@
   $c->app->log->debug('Match info: ' . $url);
 
   # Create new user agent and set timeout to 30 seconds
-  my $ua = $c->ua; # Mojo::UserAgent->new;
+  my $ua = $c->user->ua; # Mojo::UserAgent->new;
   $ua->inactivity_timeout(30);
 
   # non-blocking
@@ -206,9 +208,9 @@
     weaken $index;
     $ua->get(
       $url => sub {
-	my $tx = pop;
-	$self->_process_response('match', $index, $tx);
-	return $cb->($index);
+        my $tx = pop;
+        $self->_process_response('match', $index, $tx);
+        return $cb->($index);
       });
   }
 
@@ -228,6 +230,8 @@
   # Get controller
   my $c = $index->controller;
 
+  my $user = $c->stash('user') // '?';
+
   # If there is a callback, do async
   my $cb = pop if ref $_[-1] && ref $_[-1] eq 'CODE';
 
@@ -244,7 +248,7 @@
   $c->app->log->debug('Get resource info on '. $url);
 
   # Check for cached information
-  if (my $json = $c->chi->get($url->to_string)) {
+  if (my $json = $c->chi->get($user . $url->to_string)) {
 
     # TODO: That's unfortunate, as it prohibits caching of multiple resources
     $c->app->log->debug('Get resource info from cache');
@@ -264,8 +268,8 @@
     weaken $index;
     $ua->get(
       $url => sub {
-	$self->_process_response('resource', $index, pop);
-	return $cb->($index);
+        $self->_process_response('resource', $index, pop);
+        return $cb->($index);
       })
   }
 
@@ -385,9 +389,10 @@
 
     if ($meta->{totalResults} && $meta->{totalResults} > -1) {
       my $c = $index->controller;
+      my $user = $c->stash('user') // '?';
 
       $c->app->log->debug('Cache total result');
-      $c->chi->set($index->_api_cache => $meta->{totalResults}, '120min');
+      $c->chi->set($user . $index->_api_cache => $meta->{totalResults}, '120min');
       $index->total_results($meta->{totalResults});
     };
   };
@@ -413,10 +418,12 @@
   my ($self, $index, $json) = @_;
   my $c = $index->controller;
 
+  my $user = $c->stash('user') // '?';
+
   # TODO: That's unfortunate, as it prohibits multiple resources
   $c->stash('search.resource' => $json);
   $c->app->log->debug('Cache resource info');
-  $c->chi->set($c->stash('search._resource_cache') => $json, '24 hours');
+  $c->chi->set($user . $c->stash('search._resource_cache') => $json, '24 hours');
 };
 
 
diff --git a/lib/Kalamar/Controller/User.pm b/lib/Kalamar/Controller/User.pm
index f59f932..1584225 100644
--- a/lib/Kalamar/Controller/User.pm
+++ b/lib/Kalamar/Controller/User.pm
@@ -1,18 +1,22 @@
 package Kalamar::Controller::User;
 use Mojo::Base 'Mojolicious::Controller';
 
+# Login action
 sub login {
   my $c = shift;
-  my $v = $c->validator;
+
+  # Validate input
+  my $v = $c->validation;
   $v->required('handle_or_email');
   $v->required('pwd');
 
-  my $handle = $v->param('handle_or_email');
-  my $pwd = $v->param('pwd');
+  # Login user
+  $c->user->login(
+    $v->param('handle_or_email'),
+    $v->param('pwd')
+  );
 
-  $c->user->login($handle, $pwd);
-
-  return $c->redirect_to;
+  return $c->redirect_to('/');
 };
 
 sub logout {
diff --git a/lib/Kalamar/Plugin/KalamarUser.pm b/lib/Kalamar/Plugin/KalamarUser.pm
index 7650e02..76233c5 100644
--- a/lib/Kalamar/Plugin/KalamarUser.pm
+++ b/lib/Kalamar/Plugin/KalamarUser.pm
@@ -35,9 +35,28 @@
       my $token = $c->stash('auth');
       return $token if $token;
 
+      # Get auth from session
+      my $auth = $c->session('auth') or return;
+
       # Set token to stash
-      $c->stash(auth => $c->session('auth'));
-      return $c->stash('auth');
+      $c->stash(auth => $auth);
+      return $auth;
+    }
+  );
+
+  $mojo->helper(
+    'user.ua' => sub {
+      my $c = shift;
+      my $auth = $c->user_auth;
+      return $plugin->ua unless $auth;
+      my $ua = Mojo::UserAgent->new;
+      $ua->on(
+        start => sub {
+          my ($ua, $tx) = @_;
+          $tx->req->headers->header('Authorization' => $auth);
+        }
+      );
+      return $ua;
     }
   );
 
@@ -50,7 +69,7 @@
       return if (index($user, ':') >= 0);
 
       my $url = Mojo::URL->new($plugin->api)->path('auth/apiToken');
-      my $tx = $c->ua->get($url => {
+      my $tx = $plugin->ua->get($url => {
         Authorization => 'Basic ' . b($user . ':' . $pwd)->b64_encode
       });
 
@@ -59,6 +78,9 @@
 
         my $jwt = $res->json;
 
+
+        # TODO: Deal with user return values.
+
         my $auth = $jwt->{token_type} . ' ' . $jwt->{token};
 
         $mojo->log->debug(qq!Login successful: "$user" with "$auth"!);
diff --git a/t/user.t b/t/user.t
new file mode 100644
index 0000000..22297d3
--- /dev/null
+++ b/t/user.t
@@ -0,0 +1,19 @@
+use Mojo::Base -strict;
+use lib;
+use Test::More;
+use Test::Mojo;
+use Data::Dumper;
+
+$ENV{MOJO_USERAGENT_DEBUG} = 1;
+
+my $t = Test::Mojo->new('Kalamar');
+
+my $c = $t->app->build_controller;
+
+# Login with user credentials
+ok($c->user->login('test_h', 'p278h'), 'Login with demo user');
+is($c->stash('user'), 'test_h', 'Kustvakt is logged in');
+like($c->stash('auth'), qr/^api_token /, 'Kustvakt is logged in');
+
+done_testing;
+__END__
diff --git a/templates/layouts/main.html.ep b/templates/layouts/main.html.ep
index f92ab2d..ed45db1 100644
--- a/templates/layouts/main.html.ep
+++ b/templates/layouts/main.html.ep
@@ -23,7 +23,7 @@
       %= include 'partial/header'
     % }
 
-% if (1) { # user not logged in
+% unless (user_auth) { # user not logged in
 % content_for 'sidebar', begin
 <fieldset>
   %= form_for 'login', begin
