diff --git a/src/main/kotlin/app/revanced/api/configuration/routes/ApiRoute.kt b/src/main/kotlin/app/revanced/api/configuration/routes/ApiRoute.kt index 07e7def..2296fee 100644 --- a/src/main/kotlin/app/revanced/api/configuration/routes/ApiRoute.kt +++ b/src/main/kotlin/app/revanced/api/configuration/routes/ApiRoute.kt @@ -6,10 +6,7 @@ import app.revanced.api.configuration.installNoCache import app.revanced.api.configuration.installNotarizedRoute import app.revanced.api.configuration.repository.ConfigurationRepository import app.revanced.api.configuration.respondOrNotFound -import app.revanced.api.configuration.schema.APIAbout -import app.revanced.api.configuration.schema.APIContributable -import app.revanced.api.configuration.schema.APIMember -import app.revanced.api.configuration.schema.APIRateLimit +import app.revanced.api.configuration.schema.* import app.revanced.api.configuration.services.ApiService import app.revanced.api.configuration.services.AuthenticationService import io.bkbn.kompendium.core.metadata.* @@ -198,7 +195,7 @@ private fun Route.installTokenRouteDocumentation() = installNotarizedRoute { description("The authorization token") mediaTypes("application/json") responseCode(HttpStatusCode.OK) - responseType() + responseType() } canRespondUnauthorized() } diff --git a/src/main/kotlin/app/revanced/api/configuration/schema/APISchema.kt b/src/main/kotlin/app/revanced/api/configuration/schema/APISchema.kt index b48af9a..6e749c1 100644 --- a/src/main/kotlin/app/revanced/api/configuration/schema/APISchema.kt +++ b/src/main/kotlin/app/revanced/api/configuration/schema/APISchema.kt @@ -172,3 +172,6 @@ class APIAbout( val links: List?, ) } + +@Serializable +class APIToken(val token: String) diff --git a/src/main/kotlin/app/revanced/api/configuration/services/AuthenticationService.kt b/src/main/kotlin/app/revanced/api/configuration/services/AuthenticationService.kt index aa166ab..7e4aea7 100644 --- a/src/main/kotlin/app/revanced/api/configuration/services/AuthenticationService.kt +++ b/src/main/kotlin/app/revanced/api/configuration/services/AuthenticationService.kt @@ -1,5 +1,6 @@ package app.revanced.api.configuration.services +import app.revanced.api.configuration.schema.APIToken import com.auth0.jwt.JWT import com.auth0.jwt.algorithms.Algorithm import io.ktor.server.auth.* @@ -41,8 +42,10 @@ internal class AuthenticationService private constructor( } } - fun newToken(): String = JWT.create() - .withIssuer(issuer) - .withExpiresAt(Instant.now().plus(validityInMin, ChronoUnit.MINUTES)) - .sign(Algorithm.HMAC256(jwtSecret)) + fun newToken() = APIToken( + JWT.create() + .withIssuer(issuer) + .withExpiresAt(Instant.now().plus(validityInMin, ChronoUnit.MINUTES)) + .sign(Algorithm.HMAC256(jwtSecret)), + ) }