[backend/api] Add logout endpoint (ISH-664)

This commit is contained in:
Laura Hausmann 2024-12-14 22:09:57 +01:00
parent 71cfa9e501
commit eab83fb500
No known key found for this signature in database
GPG key ID: D044E84C5BE01605

View file

@ -43,8 +43,8 @@ public class AuthController(DatabaseContext db, UserService userSvc, UserRendere
Justification = "Argon2 is execution time-heavy by design")]
public async Task<AuthResponse> Login([FromBody] AuthRequest request)
{
var user = await db.Users.FirstOrDefaultAsync(p => p.IsLocalUser &&
p.UsernameLower == request.Username.ToLowerInvariant());
var user = await db.Users.FirstOrDefaultAsync(p => p.IsLocalUser
&& p.UsernameLower == request.Username.ToLowerInvariant());
if (user == null)
throw GracefulException.Forbidden("Invalid username or password");
if (user.IsSystemUser)
@ -114,6 +114,17 @@ public class AuthController(DatabaseContext db, UserService userSvc, UserRendere
return await GetAuthResponse(session, user);
}
[HttpPost("logout")]
[Authenticate]
[Authorize]
[ProducesResults(HttpStatusCode.OK)]
public async Task Logout()
{
var session = HttpContext.GetSessionOrFail();
db.Remove(session);
await db.SaveChangesAsync();
}
[HttpPost("change-password")]
[Authenticate]
[Authorize]