LernApp/src/main/kotlin/com/oliver/kidio/backend/plugins/Security.kt

30 lines
827 B
Kotlin
Raw Normal View History

2026-09-04 10:54:10 +00:00
package com.oliver.kidio.backend.plugins
import com.oliver.kidio.backend.security.JwtService
import io.ktor.server.application.*
import io.ktor.server.auth.*
import io.ktor.server.auth.jwt.*
/**
* Repräsentiert den authentifizierten Benutzer im Request-Kontext.
*/
data class UserPrincipal(val userId: String) : Principal
fun Application.configureSecurity(jwtService: JwtService) {
install(Authentication) {
jwt("auth-jwt") {
realm = "Kidio Backend"
verifier(jwtService.verifier)
validate { credential ->
val userId = credential.payload.getClaim("userId").asString()
if (!userId.isNullOrEmpty()) {
UserPrincipal(userId)
} else {
null
}
}
}
}
}