diff options
| author | Claus Vium <cvium@users.noreply.github.com> | 2023-09-11 17:39:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-11 17:39:39 +0200 |
| commit | a35a74ce38f3637e876ea3616a935e7671310d61 (patch) | |
| tree | 00f5f36527eca42237f897dd4f22fccc16ce5d29 | |
| parent | bc959270b762d1a6f68fc4f46a7c42138b39710c (diff) | |
| parent | 9ea46b9e17c82ae276d13d32647bf4c8d0c10ac3 (diff) | |
Merge pull request #10197 from thornbill/multiple-sessions
Remove one session per device id limitation
| -rw-r--r-- | Emby.Server.Implementations/Session/SessionManager.cs | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs index 03ff96b19..b4a622ccf 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/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); |
