✨ 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