This client wraps AppAuth, provides a clean way of connecting to the ZapWorks API and type definitions for all data sent back.
By default an OAuth2 Authorization Code Grant with PKCE will be used.
https://github.com/openid/AppAuth-JS/blob/master/src/app/index.ts https://github.com/openid/AppAuth-JS/blob/master/src/node_app/index.ts
const client = new zw.Client({
clientId: 'abc123',
redirectURI: 'https://example.com/oauth/callback/',
env: zw.Environment.Dev,
})
client.checkForAuthorizationResponse().then(async () => {
const qs = new URLSearchParams(location.search)
if (qs.get('error')) return // Display auth error to user
if (qs.get('code')) { // check if we got a code on the callback request
await client.makeTokenRequest() // request an access token
}
// from here the client has an access token to call the API
client.getUser().then(console.log)
})
const client = new zw.NodeClient({
clientId: 'abc123',
env: zw.Environment.Dev
})
await client.makeAuthorizationRequest()
console.log(await client.getUser())