diff --git a/config/schema/oauth2_jwt_sso.schema.yml b/config/schema/oauth2_jwt_sso.schema.yml
index 97c01bb..27fa079 100644
--- a/config/schema/oauth2_jwt_sso.schema.yml
+++ b/config/schema/oauth2_jwt_sso.schema.yml
@@ -10,6 +10,10 @@ oauth2_jwt_sso.settings:
       type: uri
       label: 'Access Token URL'
       description: ''
+    logout_url:
+      type: uri
+      label: 'Logout URL'
+      description: ''
     client_id:
       type: string
       label: 'Client ID'
diff --git a/oauth2_jwt_sso.services.yml b/oauth2_jwt_sso.services.yml
index a2d40df..4637923 100644
--- a/oauth2_jwt_sso.services.yml
+++ b/oauth2_jwt_sso.services.yml
@@ -11,3 +11,7 @@ services:
     public: false
     tag:
       - { name: page_cache_request_policy }
+  oauth2_jwt_sso.route_subscriber:
+    class: Drupal\oauth2_jwt_sso\Routing\RouteSubscriber
+    tags:
+      - { name: event_subscriber }
diff --git a/src/Controller/OAuth2JwtSSOController.php b/src/Controller/OAuth2JwtSSOController.php
index ba1bf03..c05c603 100644
--- a/src/Controller/OAuth2JwtSSOController.php
+++ b/src/Controller/OAuth2JwtSSOController.php
@@ -3,7 +3,6 @@
 namespace Drupal\oauth2_jwt_sso\Controller;
 
 use Lcobucci\JWT\Parser;
-use Drupal\user\Entity\User;
 use Drupal\Core\Controller\ControllerBase;
 use Symfony\Component\HttpFoundation\Request;
 use Drupal\Core\Config\ConfigFactoryInterface;
@@ -11,7 +10,6 @@ use Drupal\Core\Routing\TrustedRedirectResponse;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
-use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
 use Drupal\oauth2_jwt_sso\Authentication\Provider\OAuth2JwtSSOProvider;
 use Symfony\Component\HttpFoundation\Session\SessionInterface;
 
@@ -87,4 +85,12 @@ class OAuth2JwtSSOController extends ControllerBase implements ContainerInjectio
     }
   }
 
+  function logout(){
+    $authserver_logout_url = $this->configFactory
+      ->get('oauth2_jwt_sso.settings')
+      ->get('logout_url');
+    user_logout();
+    return ($authserver_logout_url) ? new TrustedRedirectResponse($authserver_logout_url) : $this->redirect('<front>');
+  }
+
 }
diff --git a/src/Form/OAuth2JwtSSOSettingsForm.php b/src/Form/OAuth2JwtSSOSettingsForm.php
index ff38b41..24779d6 100644
--- a/src/Form/OAuth2JwtSSOSettingsForm.php
+++ b/src/Form/OAuth2JwtSSOSettingsForm.php
@@ -47,6 +47,12 @@ class OAuth2JwtSSOSettingsForm extends ConfigFormBase {
       '#default_value' => $oauth2_jwt_sso_config->get('access_token_url'),
       '#required' => TRUE,
     ];
+    $form['logout_url'] = [
+      '#type' => 'url',
+      '#title' => $this->t('Logout URL'),
+      '#default_value' => $oauth2_jwt_sso_config->get('logout_url'),
+      '#required' => TRUE,
+    ];
     $form['client_id'] = [
       '#type' => 'textfield',
       '#title' => $this->t('Client ID'),
@@ -89,6 +95,7 @@ class OAuth2JwtSSOSettingsForm extends ConfigFormBase {
     $this->config('oauth2_jwt_sso.settings')
       ->set('authorization_url', $values['authorization_url'])
       ->set('access_token_url', $values['access_token_url'])
+      ->set('logout_url', $values['logout_url'])
       ->set('client_id', $values['client_id'])
       ->set('client_secret', $values['client_secret'])
       ->set('auth_public_key', $values['auth_public_key'])
diff --git a/src/Routing/RouteSubscriber.php b/src/Routing/RouteSubscriber.php
new file mode 100644
index 0000000..105c5b5
--- /dev/null
+++ b/src/Routing/RouteSubscriber.php
@@ -0,0 +1,17 @@
+<?php
+
+
+namespace Drupal\oauth2_jwt_sso\Routing;
+
+use Drupal\Core\Routing\RouteSubscriberBase;
+use Symfony\Component\Routing\RouteCollection;
+
+class RouteSubscriber extends RouteSubscriberBase{
+
+  protected function alterRoutes(RouteCollection $collection) {
+    if ($route =  $collection->get('user.logout')) {
+      $route->setDefault('_controller', '\Drupal\oauth2_jwt_sso\Controller\OAuth2JwtSSOController::logout');
+    }
+  }
+
+}
