21 lines
671 B
Kotlin
21 lines
671 B
Kotlin
package be.vandewalleh.auth
|
|
|
|
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, 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(id: Int): String = JWT.create()
|
|
.withClaim("id", id)
|
|
.withExpiresAt(getExpiration())
|
|
.sign(algorithm)
|
|
|
|
private fun getExpiration() = Date(System.currentTimeMillis() + validityInMs)
|
|
}
|