fix: Respond with JSON when returning token

This commit is contained in:
oSumAtrIX 2024-09-27 20:19:27 +02:00
parent 977d252497
commit 1e3e46ff4f
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4
3 changed files with 12 additions and 9 deletions

View File

@ -6,10 +6,7 @@ import app.revanced.api.configuration.installNoCache
import app.revanced.api.configuration.installNotarizedRoute import app.revanced.api.configuration.installNotarizedRoute
import app.revanced.api.configuration.repository.ConfigurationRepository import app.revanced.api.configuration.repository.ConfigurationRepository
import app.revanced.api.configuration.respondOrNotFound import app.revanced.api.configuration.respondOrNotFound
import app.revanced.api.configuration.schema.APIAbout import app.revanced.api.configuration.schema.*
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.services.ApiService import app.revanced.api.configuration.services.ApiService
import app.revanced.api.configuration.services.AuthenticationService import app.revanced.api.configuration.services.AuthenticationService
import io.bkbn.kompendium.core.metadata.* import io.bkbn.kompendium.core.metadata.*
@ -198,7 +195,7 @@ private fun Route.installTokenRouteDocumentation() = installNotarizedRoute {
description("The authorization token") description("The authorization token")
mediaTypes("application/json") mediaTypes("application/json")
responseCode(HttpStatusCode.OK) responseCode(HttpStatusCode.OK)
responseType<String>() responseType<APIToken>()
} }
canRespondUnauthorized() canRespondUnauthorized()
} }

View File

@ -172,3 +172,6 @@ class APIAbout(
val links: List<Link>?, val links: List<Link>?,
) )
} }
@Serializable
class APIToken(val token: String)

View File

@ -1,5 +1,6 @@
package app.revanced.api.configuration.services package app.revanced.api.configuration.services
import app.revanced.api.configuration.schema.APIToken
import com.auth0.jwt.JWT import com.auth0.jwt.JWT
import com.auth0.jwt.algorithms.Algorithm import com.auth0.jwt.algorithms.Algorithm
import io.ktor.server.auth.* import io.ktor.server.auth.*
@ -41,8 +42,10 @@ internal class AuthenticationService private constructor(
} }
} }
fun newToken(): String = JWT.create() fun newToken() = APIToken(
.withIssuer(issuer) JWT.create()
.withExpiresAt(Instant.now().plus(validityInMin, ChronoUnit.MINUTES)) .withIssuer(issuer)
.sign(Algorithm.HMAC256(jwtSecret)) .withExpiresAt(Instant.now().plus(validityInMin, ChronoUnit.MINUTES))
.sign(Algorithm.HMAC256(jwtSecret)),
)
} }