Last active
June 5, 2018 18:06
-
-
Save andrew-serrano/690120dccd8310664a25a79a794b69ae to your computer and use it in GitHub Desktop.
Creating a JSON Web Token in Miva
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<mvt:comment> | |
JWT Resource: | |
https://dev.to/robdwaller/how-to-create-a-json-web-token-using-php-3gml | |
JWT Debugging: | |
https://jwt.io/ | |
JWT Example: | |
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImV4YW1wbGVAbWl2YS5jb20iLCJhdXRoX2lkIjoxMjM0fQ.pVbu7ymUbbBwy5kUZGLNkYkgZHALpNbbtS718G-C6wo | |
</mvt:comment> | |
<mvt:comment> Header </mvt:comment> | |
<mvt:assign name="l.jwt_header:typ" value="'JWT'" /> | |
<mvt:assign name="l.jwt_header:alg" value="'HS256'" /> | |
<mvt:comment> Payload </mvt:comment> | |
<mvt:assign name="l.jwt_payload:email" value="'example@miva.com'" /> | |
<mvt:assign name="l.jwt_payload:auth_id" value="'1234'" /> | |
<mvt:comment> JSON Encode Header & Payload </mvt:comment> | |
<mvt:do file="g.Module_Root $ 'max-json-encode.mvc'" name="l.header" value="JSON_Encode( l.jwt_header)" /> | |
<mvt:do file="g.Module_Root $ 'max-json-encode.mvc'" name="l.payload" value="JSON_Encode( l.jwt_payload)" /> | |
<mvt:comment> Search/Replace Array </mvt:comment> | |
<mvt:assign name="l.search_array[1]" value="'+'" /> | |
<mvt:assign name="l.search_array[2]" value="'/'" /> | |
<mvt:assign name="l.search_array[3]" value="'='" /> | |
<mvt:assign name="l.replace_array[1]" value="'-'" /> | |
<mvt:assign name="l.replace_array[2]" value="'_'" /> | |
<mvt:assign name="l.replace_array[3]" value="''" /> | |
<mvt:comment> Base 64 Encode </mvt:comment> | |
<mvt:assign name="l.header_64" value="glosub_array( crypto_base64_encode( l.header ), l.search_array, l.replace_array )" /> | |
<mvt:assign name="l.payload_64" value="glosub_array( crypto_base64_encode( l.payload ), l.search_array, l.replace_array )" /> | |
<mvt:comment> Create Signature </mvt:comment> | |
<mvt:assign name="l.buffer" value="l.header_64 $ '.' $ l.payload_64" /> | |
<mvt:assign name="l.null" value="crypto_hmac_sha256( l.buffer, 'insert_secret_key_here', 'binary' , l.signature )" /> | |
<mvt:comment> Base 64 Encode signature </mvt:comment> | |
<mvt:assign name="l.signature_64" value="glosub_array( crypto_base64_encode( l.signature ), l.search_array, l.replace_array )" /> | |
<mvt:comment> JSON Web Token </mvt:comment> | |
<mvt:assign name="l.jwt_token" value="l.header_64 $ '.' $ l.payload_64 $ '.' $ l.signature_64" /> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment