diff --git a/src/components/CommonUtil.vue b/src/components/CommonUtil.vue
index ecff902ff6d5566bf84a775af7dbf98de42b62ca..bbd64eb0b5834a5032fd70e841b3d0f55060af0b 100644
--- a/src/components/CommonUtil.vue
+++ b/src/components/CommonUtil.vue
@@ -41,6 +41,8 @@
 		CONST_URL_AUTH_UUID: '/rest/auth/uuid',
 		CONST_URL_AUTH_LOGIN: '/rest/auth/login',
 		CONST_URL_LAST_TIMESTAMP: '/rest/observation/organismsystemupdated',
+		
+		CONST_URL_USER: '/user',
 
 		CONST_URL_CROP_CATEGORY: '/rest/organism/cropcategory/',
 		CONST_URL_CROP_LIST: '/rest/organism/crop/list',
diff --git a/src/components/DeleteUserForm.vue b/src/components/DeleteUserForm.vue
index c0571ecf10b9054543d9f0ee0c59e307d4c8e96f..e4ccef23434ab270871c886e0f02a005b8f868b3 100644
--- a/src/components/DeleteUserForm.vue
+++ b/src/components/DeleteUserForm.vue
@@ -93,7 +93,6 @@
       },
       autoLogout: function() {
         this.$root.$emit("autoLogout");
-        console.info("AutoLogout!")
       }
     }
   }
diff --git a/src/components/LoginSystem.vue b/src/components/LoginSystem.vue
index e062597345c507cd75e8c1435728fa37e5425c8a..29992bda34e230280114d4b18b17747a0fafd93f 100644
--- a/src/components/LoginSystem.vue
+++ b/src/components/LoginSystem.vue
@@ -43,12 +43,31 @@
 						:aria-label="$t('login.pwd.field.placeholder')" v-model="password"
 						v-on:keyup.enter="handleLogin()" />
 				</div>
-
-				<button class="btn btn-primary" type="button" v-on:click="handleLogin()"
-					v-on:keyup.enter="handleLogin()">
-					{{ $t("login.button.label")}}
-				</button>
-				<router-link to="/RegisterUserForm" class="btn btn-warning" onclick="$('.offcanvas-collapse').toggleClass('open')">{{ $t("registeruser.button.label") }}</router-link>
+				<div class="form-group">
+					<button class="btn btn-primary" type="button" v-on:click="handleLogin()"
+						v-on:keyup.enter="handleLogin()">
+						{{ $t("login.button.label")}}
+					</button>
+					<router-link to="/RegisterUserForm" class="btn btn-warning" onclick="$('.offcanvas-collapse').toggleClass('open')">{{ $t("registeruser.button.label") }}</router-link>
+				</div>
+				<div v-show="!showForgottenPasswordForm && !showForgottenPasswordSubmitSuccessMsg"  class="form-group" v-on:click="showForgottenPasswordForm=true"><a href="#" class="card-link">{{ $t("login.forgotpassword.label") }}</a></div>
+				<div v-show="showForgottenPasswordForm" >
+					<h4>{{ $t("login.forgotpassword.label") }}</h4>
+					{{ $t("login.forgotpassword.description")}}
+					<div class="form-group">
+						<input type="text" class="form-control" v-model="email" :placeholder="$t('login.forgotpassword.field.placeholder')"/>
+					</div>
+					<div class="form-group">
+						<button class="btn btn-primary" type="button" v-on:click="handleForgottenPassword()">
+							{{ $t("login.forgotpassword.button.label")}}
+						</button>
+					</div>
+				</div>
+				<div v-show="showForgottenPasswordSubmitSuccessMsg" class="form-group">
+					<h4>{{ $t("login.forgotpassword.label") }}</h4>
+					{{ $t("login.forgotpassword.success.msg")}}
+				</div>
+				
 				<div v-show="errMsg" class="alert alert-warning alert-dismissible fade show">
 					{{errMsg}}
 					<button type="button" class="close" data-dismiss="alert" aria-label="Close">
@@ -92,6 +111,9 @@
 				isSyncNeeded: false,
 				errMsg: '',
 				isLogginFail: false,
+				email: "",
+				showForgottenPasswordForm: false,
+				showForgottenPasswordSubmitSuccessMsg: false
 			};
 		},
 		//emits: {},
@@ -249,6 +271,25 @@
 				$('.offcanvas-collapse').removeClass('open');
 				this.$router.push('/Logout');
 			},
+			handleForgottenPassword: async function(){
+				const formData = new URLSearchParams();
+				formData.append("email", this.email);
+				const response = await fetch(
+					CommonUtil.CONST_URL_DOMAIN + CommonUtil.CONST_URL_USER + "?action=resetPasswordRequestFormSubmit",
+					{
+						method: "POST",
+						body: formData
+					}
+				);
+				if(response.status != 200)
+				{
+					alert("Something went wrong. Status code = " + response.status + ". Please contact your system administrator");
+					return false;
+				}
+				this.showForgottenPasswordForm = false;
+				this.showForgottenPasswordSubmitSuccessMsg = true;
+
+			},
 			/** Remove stored data on logout */
 			removeStoredData() {
 				/* Remove localstorage */
diff --git a/src/locales/en.json b/src/locales/en.json
index e583f7ae7595686d2ab61f709ec9bae81a3e64e4..8ef9b1c700ab590ad17497a7a5f9a1c0237c57a0 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -10,7 +10,12 @@
 	"login.pwd.field.placeholder": "Password",
 	"login.systems.wrong.credential": "Wrong username and/or password. Please try again.",
 	"logout.header.text": "Logout",
-	"logout.success.text": "You successfully log out ",
+	"logout.success.text": "You have successfully logged out ",
+	"login.forgotpassword.label": "Forgotten password",
+	"login.forgotpassword.description": "An email will be sent to the provided address, with instructions on how to reset your password.",
+	"login.forgotpassword.field.placeholder": "E-mail address",
+	"login.forgotpassword.button.label": "Send e-mail address",
+	"login.forgotpassword.success.msg": "Your request has been accepted. An e-mail with further instructions has been sent.",
 	"observation.date.label": "Observation Date",
 	"observation.quantification.label": "Quantify",
 	"observation.quantification.form.label": "Observasjon quantification",
diff --git a/src/locales/nb.json b/src/locales/nb.json
index 526944bcd1a6e1ef261be698b7e3931d599fe8fa..2f599347bf955ca58e069b35de19532eb3850a04 100644
--- a/src/locales/nb.json
+++ b/src/locales/nb.json
@@ -11,6 +11,11 @@
 	"login.systems.wrong.credential": "Feil brukernavn og/eller passord. Vennligst prøv igjen.",
 	"logout.header.text": "Logg ut",
 	"logout.success.text": "Du er nå utlogget",
+	"login.forgotpassword.label": "Glemt passord",
+	"login.forgotpassword.description": "En e-post sendes til den adressen du registrerer her med informasjon om hvordan du nullstiller nåværende passord og oppretter et nytt.",
+	"login.forgotpassword.field.placeholder": "E-postadresse",
+	"login.forgotpassword.button.label": "Send e-postadresse",
+	"login.forgotpassword.success.msg": "Din henvendelse er behandlet og akseptert. En e-post med flere instruksjoner har blitt sendt til den registrerte e-postadressen.",
 	"observation.date.label": "Observasjonsdato",
 	"observation.quantification.label": "Tell/kvantifiser",
 	"observation.quantification.form.label": "Observasjonsspesifikke detaljer",
diff --git a/static/css/vipsobsapp.css b/static/css/vipsobsapp.css
index 5e460efcc1fab2934e31bf0c90518ee14b895f8d..a8186a89b52e76551d153768db3a0a5ac19cd7e4 100644
--- a/static/css/vipsobsapp.css
+++ b/static/css/vipsobsapp.css
@@ -63,13 +63,15 @@ div.addItem {
 		bottom: 25px;
 		right: 25px;
 		z-index: 1000;
-	}
-	div.addItem button {
-		background-color: #3d8052 !important;
-		border-radius: 25px;
-		border: 0px;
-		font-weight: bolder;
-	}
+}
+
+div.addItem button {
+	background-color: #3d8052 !important;
+	border-radius: 25px;
+	border: 0px;
+	font-weight: bolder;
+}
+
 #divAbout {
   padding: 10px;
   border: 1px solid #3d8052;