Skip to content

BradBot1/gleam_gjwt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GJWT

Package Version Hex Docs

gleam add gjwt
import birl
import birl/duration
import gjwt.{add_claim, add_header, new, sign_off, verify, from_jwt}
import gjwt/claim.{expiration_time}
import gjwt/key.{from_string}
import gleam/dynamic
import gleam/io

pub fn main() {
  let key = from_string(
    // your key
    "1111111111111111111111111111111111111111111111111111111111111113",
    // method to use
    "HS512",
  )
  let token = new()
  |> add_header("funky", dynamic.from(True))
  |> add_claim(#("test", dynamic.from("This is a test!")))
  |> add_claim(expiration_time(birl.add(birl.now(), duration.seconds(15))))
    // convert to JWT
  |> sign_off(key)
  io.debug(token) // Have a look at it
  case verify(token, key) {
    True -> io.debug("Valid verified token!")
    False -> io.debug("Bad token") // you shouldn't get here in this example
  }
  // attempt to parse the token
  case from_jwt(token, key) {
    Ok(verified_jwt) -> io.debug(verified_jwt)
    Error(_) -> io.debug("Bad token") // you shouldn't get here in this example
  }
}

Further documentation can be found at https://hexdocs.pm/gjwt.

About

A gleam package for interacting with JWT's via erlang_JOSE

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •