본문 바로가기

classic asp

[classic asp] JWT Web Token

<%
'토큰생성
set jwt = Server.CreateObject("Chilkat_9_5_0.Jwt")
set jose = Server.CreateObject("Chilkat_9_5_0.JsonObject")
success = jose.AppendString("alg","HS256")
success = jose.AppendString("typ","JWT")

set claims = Server.CreateObject("Chilkat_9_5_0.JsonObject")
success = claims.AppendString("iss","http://test.kr")
success = claims.AppendString("sub","name")
success = claims.AppendString("aud","http://test.com")

curDateTime = jwt.GenNumericDate(0)
success = claims.AddIntAt(-1,"iat",curDateTime)
success = claims.AddIntAt(-1,"nbf",curDateTime)
success = claims.AddIntAt(-1,"exp",curDateTime + 3600)

jwt.AutoCompact = 1
strJwt = jwt.CreateJwt(jose.Emit(),claims.Emit(),"secret")

Response.Write Server.HTMLEncode( strJwt)

'토큰확인
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwOi8vdGVzdC5rciIsInN1YiI6Im5hbWUiLCJhdWQiOiJodHRwOi8vdGVzdC5jb20iLCJpYXQiOjE2MTk0MjY2MjYsIm5iZiI6MTYxOTQyNjYyNiwiZXhwIjoxNjE5NDMwMjI2fQ.UOAM0lN1z-ZshRCLT808vWwmA1cMrquL1DWh_bkHmS8"
sigVerified = jwt.VerifyJwt(token,"secret")
Response.Write Server.HTMLEncode( "password: " & sigVerified)& "<br>"

leeway = 1
bTimeValid = jwt.IsTimeValid(token,leeway)
Response.Write Server.HTMLEncode( "time: " & bTimeValid) & "<br>"

payload = jwt.GetPayload(token)
Response.Write Server.HTMLEncode( payload) & "<br>"
 
joseHeader = jwt.GetHeader(token)
Response.Write Server.HTMLEncode( joseHeader) & "<br>"
%>