Generate long-lived tokens from the CLI to be used with the MapKit JS authorizationCallback
:
Setting
authorizationCallback
to a function that returns a token as a string is useful for local development, or if you want to use a long-lived token with MapKit JS. Sign a token locally on your development machine with an expiration, then use the token directly in your code. Whether you are using a short-lived or long-lived token, setting the origin claim is always recommended.
$ npx mapkitjs-token [options]
Since we're dealing with private keys, you may feel safer to compile this tool yourself and run it locally (See the "Compiling" section in README
).
Options:
--help Show help [boolean]
--version Show version number [boolean]
--kid A 10-character key identifier (kid) key, obtained from your Apple
Developer account [string] [required]
--iss The Issuer (iss) registered claim key. This key's value is your
10-character Team ID, obtained from your developer account.
[string] [required]
--iat The Issued At (iat), relative to now. Uses `zeit/ms` strings (e.g
'0', '2 days', '10 years')
[string] [default: Current time (e.g 0 seconds from "now")]
--exp The Expiration Time (exp) relative to `iat`, using a `zeit/ms`
string (e.g '1hr, '2 days', '10 years'). [string] [default: 1 hour]
--key MapKit private key file path [required]
--origin The Origin (origin) key. This key's value is a fully qualified
domain that should match the Origin header passed by a browser.
[string]
--verify Test the generated token with MapKit servers to verify if valid
[boolean] [default: Verify token after it generates]
--stdout Set to true to output only the token, suitable for piping
[boolean] [default: By default, outputs extra data about the token]
See the MapKit JS Documentation for the full explanation of these options.
Generate a token with the default expiration (1 hour) and verify the token works:
$ npx mapkitjs-token --kid ABC123DEFG --iss DEF123GHIJ --key secrets.p8 --verify
Token Information:
Key Id (kid) ABC123DEFG
Issuer (iss) DEF123GHIJ
Issued (iat) 1583626697 (Sat Mar 07 2020 16:18:17 GMT-0800 (Pacific Standard Time))
Expire (exp) 1583630297 (Sat Mar 07 2020 17:18:17 GMT-0800 (Pacific Standard Time))
Expires In 1 hour (3600s)
Origin none
Valid valid
Token [token]
Generate a token with a 10 year expiration, verify, and copy directly to clipboard (OSX):
$ npx mapkitjs-token --kid ABC123DEFG --iss DEF123GHIJ --key secret.p8 --exp 10y --verify --stdout | pbcopy
$ npm ci
$ npm run build
$ node ./dist/cli.js