Here’s an high level view of what would be required in terms of Auth0 configuration:
- Create a client application (Clients section in Dashboard) to represent your Vue.js application; Given the use of Vue.js I’m assuming this is strictly a SPA application so you should create it with the SPA client application type.
- Create an API (APIs section in Dashboard) to represent your Node.js API.
Use Auth0.js (v8)
authorize method in your SPA application to redirect the users to the hosted login page where they will authenticate. You can follow the Vue.js quickstart to accomplish this part.
Augment the previous Auth0.js confiuration to include an
audience parameter and any appropriate scopes associated with the API you configured. At this time, the Vue.js quickstart does not have a call an API step, but for the most relevant bits in terms of configuration you can check the jQuery quickstart step as it also uses Auth0.js.
Setup your Node.js API to receive and validate access tokens issued by your Auth0 account; you can follow the Node.js API quickstart for this part.
Having completed all of the above you end-users would authenticate in the hosted login page and an ID token and access token would be issued to the SPA application. You could use the information contained in the ID token to know who the user is and update the UI to reflect their login state. The received access token would be used in any call that the client application would need to perform to the API.
The access token would eventually expire so you would need to obtain a refreshed one; since the end-user initially authenticated through the hosted login page, an authenticated session was established. This makes it possible for you to use the Auth0.js
renewAuth method to get a fresh access token without forcing the user to provide their credentials again.