Ver código fonte

Merge pull request #10197 from thornbill/multiple-sessions

Remove one session per device id limitation
Claus Vium 1 ano atrás
pai
commit
a35a74ce38
1 arquivos alterados com 9 adições e 24 exclusões
  1. 9 24
      Emby.Server.Implementations/Session/SessionManager.cs

+ 9 - 24
Emby.Server.Implementations/Session/SessionManager.cs

@@ -1509,35 +1509,20 @@ namespace Emby.Server.Implementations.Session
                 new DeviceQuery
                 {
                     DeviceId = deviceId,
-                    UserId = user.Id,
-                    Limit = 1
-                }).ConfigureAwait(false)).Items.FirstOrDefault();
-
-            var allExistingForDevice = (await _deviceManager.GetDevices(
-                new DeviceQuery
-                {
-                    DeviceId = deviceId
+                    UserId = user.Id
                 }).ConfigureAwait(false)).Items;
 
-            foreach (var auth in allExistingForDevice)
+            foreach (var auth in existing)
             {
-                if (existing is null || !string.Equals(auth.AccessToken, existing.AccessToken, StringComparison.Ordinal))
+                try
                 {
-                    try
-                    {
-                        await Logout(auth).ConfigureAwait(false);
-                    }
-                    catch (Exception ex)
-                    {
-                        _logger.LogError(ex, "Error while logging out.");
-                    }
+                    // Logout any existing sessions for the user on this device
+                    await Logout(auth).ConfigureAwait(false);
+                }
+                catch (Exception ex)
+                {
+                    _logger.LogError(ex, "Error while logging out existing session.");
                 }
-            }
-
-            if (existing is not null)
-            {
-                _logger.LogInformation("Reissuing access token: {Token}", existing.AccessToken);
-                return existing.AccessToken;
             }
 
             _logger.LogInformation("Creating new access token for user {0}", user.Id);