diff --git a/core/modules/user/src/AccountSettingsForm.php b/core/modules/user/src/AccountSettingsForm.php
index 2b91877..a3c226d 100644
--- a/core/modules/user/src/AccountSettingsForm.php
+++ b/core/modules/user/src/AccountSettingsForm.php
@@ -166,6 +166,21 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       }
     }
 
+    //check if the timeout is overridden, if not use the default value
+    $timeout = $config->get('password_reset_timeout_override');
+    if (empty($timeout)) {
+      $timeout = $config->get('password_reset_timeout');
+    }
+    // Configure one-time login link timeout
+    $form['registration_cancellation']['user_pass_reset_timeout'] = array(
+        '#type' => 'textfield',
+        '#title' => t('How long will a one-time login link be valid?'),
+        '#default_value' => $timeout,
+        '#description' => t('Time, in seconds, during which a one-time login link will be valid. Defaults to 24 hours (86400 seconds).'),
+        '#maxlength' => 8,
+        '#size' => 8,
+    );
+  
     // Account settings.
     $filter_exists = $this->moduleHandler->moduleExists('filter');
     $form['personalization'] = array(
@@ -425,6 +440,9 @@ public function buildForm(array $form, FormStateInterface $form_state) {
   public function submitForm(array &$form, FormStateInterface $form_state) {
     parent::submitForm($form, $form_state);
 
+    if (empty($form_state->getValue('user_pass_reset_timeout'))){
+      
+    }
     $this->config('user.settings')
       ->set('anonymous', $form_state->getValue('anonymous'))
       ->set('admin_role', $form_state->getValue('user_admin_role'))
@@ -436,7 +454,8 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       ->set('notify.status_activated', $form_state->getValue('user_mail_status_activated_notify'))
       ->set('notify.status_blocked', $form_state->getValue('user_mail_status_blocked_notify'))
       ->set('notify.status_canceled', $form_state->getValue('user_mail_status_canceled_notify'))
-      ->save();
+      ->set('password_reset_timeout_override', intval($form_state->getValue('user_pass_reset_timeout')))
+    ->save();
     $this->config('user.mail')
       ->set('cancel_confirm.body', $form_state->getValue('user_mail_cancel_confirm_body'))
       ->set('cancel_confirm.subject', $form_state->getValue('user_mail_cancel_confirm_subject'))
diff --git a/core/modules/user/src/Controller/UserController.php b/core/modules/user/src/Controller/UserController.php
index f5c2a4c..11724e6 100644
--- a/core/modules/user/src/Controller/UserController.php
+++ b/core/modules/user/src/Controller/UserController.php
@@ -111,7 +111,11 @@ public function resetPass($uid, $timestamp, $hash) {
     else {
       // The current user is not logged in, so check the parameters.
       // Time out, in seconds, until login URL expires.
-      $timeout = $config->get('password_reset_timeout');
+      // check if the timeout is overridden, if not use the default value
+      $timeout = $config->get('password_reset_timeout_override');
+      if (empty($timeout)) {
+        $timeout = $config->get('password_reset_timeout');
+      }
       $current = REQUEST_TIME;
       /* @var \Drupal\user\UserInterface $user */
       $user = $this->userStorage->load($uid);
