Add token renewal backend

This commit is contained in:
2020-04-26 00:49:42 +02:00
parent 9d1d1b3afb
commit 8061c15b04
10 changed files with 114 additions and 62 deletions
+2 -2
View File
@@ -9,10 +9,10 @@ import org.kodein.di.generic.instance
fun Application.authenticationModule() {
install(Authentication) {
jwt {
val simpleJwt by kodein.instance<SimpleJWT>()
val simpleJwt by kodein.instance<SimpleJWT>(tag = "auth")
verifier(simpleJwt.verifier)
validate {
UserIdPrincipal(it.payload.getClaim("name").asString())
UserIdPrincipal(it.payload.getClaim("email").asString())
}
}
}
+5 -4
View File
@@ -4,14 +4,15 @@ import com.auth0.jwt.JWT
import com.auth0.jwt.JWTVerifier
import com.auth0.jwt.algorithms.Algorithm
import java.util.*
import java.util.concurrent.TimeUnit
class SimpleJWT(secret: String) {
private val validityInMs = 36_000_00 * 1
class SimpleJWT(secret: String, validity: Long, unit: TimeUnit) {
private val validityInMs = TimeUnit.MILLISECONDS.convert(validity, unit)
private val algorithm = Algorithm.HMAC256(secret)
val verifier: JWTVerifier = JWT.require(algorithm).build()
fun sign(name: String): String = JWT.create()
.withClaim("name", name)
fun sign(email: String): String = JWT.create()
.withClaim("email", email)
.withExpiresAt(getExpiration())
.sign(algorithm)