JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 22
  • Score
    100M100P100Q61852F
  • License MIT

Single-Page Application Authorization Client for Autodesk Platform Services

Package Exports

  • aps-spa-auth-js

Readme

Autodesk Platform Services | Single-Page Applications | Authorization Client

A JS-SDK for gaining access to Autodesk Platform Services within Single-Page Applications (inspired by Auth0). The client obtains access tokens by using the PKCE (Proof Key for Code Exchange) authorization flow for public clients.

Getting Started

Configure your application

Create a Single-Page Application in Autodesk Platform Services - Applications and store the Client ID within your application (in a .env-file). Specify an authorization callback url to be used in your application (e.g. http://localhost:8000/auth/autodesk/callback or https://example.com/auth/autodesk/callback)

Installation

Using npm in your project directory run the following command:

npm install aps-spa-auth-js

Integrate authentication into your application

Create the client and have it globally accessible in your application (verify authorization- and token endpoint urls with Autodesks documentation):

const client = createAPSAuthClient({
    client_id: PUBLIC_AEC_APP_ID,
    authorization_endpoint: `https://developer.api.autodesk.com/authentication/v2/authorize`,
    token_endpoint: `https://developer.api.autodesk.com/authentication/v2/token`,
    scope: ["data:read"]
})

Redirect the user to Autodesks authorization page (create a callback directory for handling the callback which the authorization page will redirect you back to):

const redirect_uri = `${window.location.origin}/auth/autodesk/callback`
await client.loginWithRedirect({ redirect_uri })

Handle the redirect from the authorization page:

// https://example.com/auth/autodesk/callback
const { origin, pathname } = window.location
const redirect_uri = `${origin}${pathname}`

try {
    await client.handleRedirectCallback({ redirect_uri })
} catch(e) {
    // Handle error
}

window.location.href = "/"

And get the access token from the client (the token is automatically refreshed by the method if expired):

try {
    await client.getAccessToken()
} catch(e) {
    // Handle refresh access token error
}

Check out the aps-spa-auth-js Github repository for a simple example developed in SvelteKit.

References