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-jsIntegrate 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.