I haven’t set this up using Wappler yet, but I usually create a table to store the access token, refresh token, scope, and expires in date/time. These are provided when the oAuth process returns the user to your app after sign in.
This is from Bubble, but hopefully helps. This workflow runs when Google redirects the user back to the specified redirect URL on my app.
Step 2 grabs the access_token, expires_in, refresh_token, and scope and inserts them into a record in a table.
Step 4 creates a scheduled job to run 120 seconds before the expires date/time to request a new access token. This scheduled job will provide the Refresh token to another workflow.
The workflow it calls, makes a call to https://www.googleapis.com/oauth2/v4/token with the following parameters and will return a new access_token and expires_in for you to store. You then need to setup a new scheduled job to run before the new expires_in time to repeat the process.
https://www.googleapis.com/oauth2/v4/token?refresh_token=[refresh_token]&client_id=[client_id]&client_secret=[client_secret]&grant_type=refresh_token
This is typically how you keep your access token up-to-date for your app to use, and does not require your user to reauthenticate.
Shoutout to @mebeingken for helping me with this process long ago.