✨ Gestion des JsonWebToken
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
parent
483f93ee95
commit
b4fb5ae965
@ -0,0 +1,13 @@
|
||||
package allin.utils
|
||||
|
||||
class RegexChecker {
|
||||
|
||||
private val emailRegex="^[A-Za-z0-9+_.-]+@(.+)$"
|
||||
|
||||
|
||||
fun isEmailInvalid(email: String): Boolean {
|
||||
val emailRegex = Regex(emailRegex)
|
||||
return !emailRegex.matches(email)
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package allin.utils
|
||||
|
||||
import allin.model.User
|
||||
import com.auth0.jwt.JWT
|
||||
import com.auth0.jwt.JWTVerifier
|
||||
import com.auth0.jwt.algorithms.Algorithm
|
||||
import io.ktor.server.config.*
|
||||
import java.util.*
|
||||
|
||||
class TokenManager (val config: HoconApplicationConfig){
|
||||
|
||||
val audience=config.property("audience").getString()
|
||||
val secret=config.property("secret").getString()
|
||||
val issuer=config.property("issuer").getString()
|
||||
val expirationDate = System.currentTimeMillis() + 60000
|
||||
fun generateJWTToken(user : User): String {
|
||||
|
||||
val token = JWT.create()
|
||||
.withAudience(audience)
|
||||
.withIssuer(issuer)
|
||||
.withClaim("username", user.username)
|
||||
.withExpiresAt(Date(expirationDate))
|
||||
.sign(Algorithm.HMAC256(secret))
|
||||
return token
|
||||
}
|
||||
|
||||
fun verifyJWTToken(): JWTVerifier{
|
||||
return JWT.require(Algorithm.HMAC256(secret))
|
||||
.withAudience(audience)
|
||||
.withIssuer(issuer)
|
||||
.build()
|
||||
}
|
||||
}
|
Loading…
Reference in new issue