import Vapor public struct UserSessionAuthenticator: AsyncSessionAuthenticator where SessionUser.SessionID == ExpiringUserId { public typealias User = SessionUser public func authenticate (sessionID: SessionUser.SessionID, for request: Request) async throws { if let user = try await request.db.withSQLConnection { connection in return try await SessionUser.authenticate (sessionID: sessionID, on: connection) } { request.logger.info ("Seeing user \(user)") request.auth.login (user) request.logger.info ("Saw user \(user)") } } }