green_copper_runtime::modules

Module jwt

source
Expand description

§JWT

this module adds support for JWT

§Example

async function test() {
    const alg = "EdDSA"; // or RS512
        
    const jwtMod = await import("greco://jwt");
    const key = await jwtMod.generateKey(alg);
                 
    const payload = {'user': 'somebody', 'obj': 'abcdef', 'privs': ['write', 'read']};
    const headers = { alg,  typ: "JWT" };
                 
    const jwtToken = await jwtMod.create(headers, payload, key);
                 
    const validatedPayload = await jwtMod.verify(jwtToken, key, alg);
    // validatedPayload will be like {"iat":1646137320,"exp":1646223720,"nbf":1646137320,"jti":"3ad1275f-e577-452e-a48f-413b6463b869", "user": "somebody", "obj": "abcdef", "privs": ["write", "read"]}
    return(jwtToken + " -> " + JSON.stringify(validatedPayload));
                 
};

Enums§