diff --git a/core/Controller/ClientFlowLoginController.php b/core/Controller/ClientFlowLoginController.php
index 81ba8009b24881d230fb43efbc1ce571f0e42091..47bbbce640e3611d808623b23e8211875b812e3c 100644
--- a/core/Controller/ClientFlowLoginController.php
+++ b/core/Controller/ClientFlowLoginController.php
@@ -307,7 +307,16 @@ class ClientFlowLoginController extends Controller {
 			);
 			$this->session->remove('oauth.state');
 		} else {
-			$redirectUri = 'nc://login/server:' . $this->request->getServerHost() . '&user:' . urlencode($loginName) . '&password:' . urlencode($token);
+			$serverPostfix = '';
+
+			if (strpos($this->request->getRequestUri(), '/index.php') !== false) {
+				$serverPostfix = substr($this->request->getRequestUri(), 0, strpos($this->request->getRequestUri(), '/index.php'));
+			} else if (strpos($this->request->getRequestUri(), '/login/flow') !== false) {
+				$serverPostfix = substr($this->request->getRequestUri(), 0, strpos($this->request->getRequestUri(), '/login/flow'));
+			}
+
+			$serverPath = $this->request->getServerProtocol() . "://" . $this->request->getServerHost() . $serverPostfix;
+			$redirectUri = 'nc://login/server:' . $serverPath . '&user:' . urlencode($loginName) . '&password:' . urlencode($token);
 		}
 
 		return new Http\RedirectResponse($redirectUri);
diff --git a/tests/Core/Controller/ClientFlowLoginControllerTest.php b/tests/Core/Controller/ClientFlowLoginControllerTest.php
index 99388e2c4417eed83ec9ed0c1a8a9b63db82ce7f..216738632233e0b316c84f82c562658e4ef48473 100644
--- a/tests/Core/Controller/ClientFlowLoginControllerTest.php
+++ b/tests/Core/Controller/ClientFlowLoginControllerTest.php
@@ -423,12 +423,16 @@ class ClientFlowLoginControllerTest extends TestCase {
 				IToken::PERMANENT_TOKEN,
 				IToken::DO_NOT_REMEMBER
 			);
+		$this->request
+			->expects($this->once())
+			->method('getServerProtocol')
+			->willReturn('http');
 		$this->request
 			->expects($this->once())
 			->method('getServerHost')
 			->willReturn('example.com');
 
-		$expected = new Http\RedirectResponse('nc://login/server:example.com&user:MyLoginName&password:MyGeneratedToken');
+		$expected = new Http\RedirectResponse('nc://login/server:http://example.com&user:MyLoginName&password:MyGeneratedToken');
 		$this->assertEquals($expected, $this->clientFlowLoginController->generateAppPassword('MyStateToken'));
 	}
 
@@ -571,12 +575,16 @@ class ClientFlowLoginControllerTest extends TestCase {
 				IToken::PERMANENT_TOKEN,
 				IToken::DO_NOT_REMEMBER
 			);
+		$this->request
+			->expects($this->once())
+			->method('getServerProtocol')
+			->willReturn('http');
 		$this->request
 			->expects($this->once())
 			->method('getServerHost')
 			->willReturn('example.com');
 
-		$expected = new Http\RedirectResponse('nc://login/server:example.com&user:MyLoginName&password:MyGeneratedToken');
+		$expected = new Http\RedirectResponse('nc://login/server:http://example.com&user:MyLoginName&password:MyGeneratedToken');
 		$this->assertEquals($expected, $this->clientFlowLoginController->generateAppPassword('MyStateToken'));
 	}
 }