Add token renewal backend
This commit is contained in:
@@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user