Remove existing sessions for a user on the same device on login

This commit is contained in:
Bill Thornton 2023-09-11 10:49:01 -04:00
parent aea57c1a4a
commit 9ea46b9e17

View File

@ -1509,14 +1509,20 @@ namespace Emby.Server.Implementations.Session
new DeviceQuery
{
DeviceId = deviceId,
UserId = user.Id,
Limit = 1
}).ConfigureAwait(false)).Items.FirstOrDefault();
UserId = user.Id
}).ConfigureAwait(false)).Items;
if (existing is not null)
foreach (var auth in existing)
{
_logger.LogInformation("Reusing existing access token: {Token}", existing.AccessToken);
return existing.AccessToken;
try
{
// 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.");
}
}
_logger.LogInformation("Creating new access token for user {0}", user.Id);