LernApp/src/main/kotlin/com/oliver/kidio/backend/security/JwtService.kt

33 lines
1 KiB
Kotlin

package com.oliver.kidio.backend.security
import com.auth0.jwt.JWT
import com.auth0.jwt.JWTVerifier
import com.auth0.jwt.algorithms.Algorithm
import java.util.Date
class JwtService(
private val secret: String = System.getenv("JWT_SECRET") ?: "super-geheimes-secret-fuer-dev",
private val issuer: String = "https://kidio.oliver.com/",
private val audience: String = "kidio-users",
private val expirationInMs: Long = java.util.concurrent.TimeUnit.DAYS.toMillis(30) // 30 Tage
) {
val verifier: JWTVerifier = JWT
.require(Algorithm.HMAC256(secret))
.withAudience(audience)
.withIssuer(issuer)
.build()
/**
* Generiert ein JWT-Token für einen bestimmten Benutzer.
*/
fun generateToken(userId: String): String {
return JWT.create()
.withAudience(audience)
.withIssuer(issuer)
.withClaim("userId", userId)
.withExpiresAt(Date(System.currentTimeMillis() + expirationInMs))
.sign(Algorithm.HMAC256(secret))
}
}