PowerSync can verify Supabase JWTs directly when connected to a Supabase-hosted Postgres database.
You can implement various types of auth:
Standard Supabase Auth
Anonymous Sign-Ins
Fully custom auth
Experimental: We’ve also heard from the community that Supabase’s newly released support for external auth providers works, but we don’t have any examples for this yet.
To implement either Supabase Auth or Anonymous Sign-Ins, enable the relevant setting on the PowerSync instance, and provide your Supabase JWT Secret. Internally, this setting allows PowerSync to verify and use Supabase JWTs directly using HS256 and the provided secret.
In the PowerSync Dashboard, right-click on your instance to edit it.
Under the “Client Auth” tab, enable “Use Supabase Auth” and enter your Supabase JWT Secret (the secret can be copied from your Supabase project’s API Settings):
Copy the secret from your Supabase project settings.
Enable Supabase Auth in your PowerSync instance settings and paste the secret.
This can be enabled via your config.yaml
:
The Supabase user UUID will be available as request.user_id()
in Sync Rules. To use a different identifier as the user ID in sync rules (for example user email), use Custom authentication.