From 035d29fb357006c29ffb40e0a53c1e999237cdd1 Mon Sep 17 00:00:00 2001
From: Matt Montgomery <33811686+ConfusedPolarBear@users.noreply.github.com>
Date: Thu, 13 Aug 2020 15:35:04 -0500
Subject: Migrate to new API standard
---
Jellyfin.Api/Controllers/UserController.cs | 41 ++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
(limited to 'Jellyfin.Api/Controllers/UserController.cs')
diff --git a/Jellyfin.Api/Controllers/UserController.cs b/Jellyfin.Api/Controllers/UserController.cs
index 272312522..131fffb7a 100644
--- a/Jellyfin.Api/Controllers/UserController.cs
+++ b/Jellyfin.Api/Controllers/UserController.cs
@@ -216,6 +216,47 @@ namespace Jellyfin.Api.Controllers
}
}
+ ///
+ /// Authenticates a user with quick connect.
+ ///
+ /// The request.
+ /// User authenticated.
+ /// Missing token.
+ /// A containing an with information about the new session.
+ [HttpPost("AuthenticateWithQuickConnect")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ public async Task> AuthenticateWithQuickConnect([FromBody, Required] QuickConnectDto request)
+ {
+ if (request.Token == null)
+ {
+ return BadRequest("Access token is required.");
+ }
+
+ var auth = _authContext.GetAuthorizationInfo(Request);
+
+ try
+ {
+ var authRequest = new AuthenticationRequest
+ {
+ App = auth.Client,
+ AppVersion = auth.Version,
+ DeviceId = auth.DeviceId,
+ DeviceName = auth.Device,
+ };
+
+ var result = await _sessionManager.AuthenticateQuickConnect(
+ authRequest,
+ request.Token).ConfigureAwait(false);
+
+ return result;
+ }
+ catch (SecurityException e)
+ {
+ // rethrow adding IP address to message
+ throw new SecurityException($"[{HttpContext.Connection.RemoteIpAddress}] {e.Message}", e);
+ }
+ }
+
///
/// Updates a user's password.
///
--
cgit v1.2.3