Files
supabase/apps/reference/docs/guides/auth/auth-workos.mdx
2022-08-13 22:24:54 +08:00

107 lines
3.4 KiB
Plaintext

---
id: auth-workos
title: 'Login with WorkOS'
description: Add WorkOS OAuth to your Supabase project
---
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
To enable WorkOS Auth for your project, you need to set up WorkOS OAuth application and add the application credentials to your Supabase Dashboard.
## Overview
In this guide, we will cover how to use Supabase OAuth with WorkOS to implement Single-Sign-On(SSO).
The procedure consists of five broad steps:
- Create a new organization from your WorkOS Dashboard.
- Obtain the `Client ID` from the Configuration tab and configure redirect URI.
- Obtain the `WorkOS Secret` from the credentials tab.
- Connect a WorkOS Supported Identity Provider
- Add your WorkOS credentials into your Supabase project
## Steps
### Create a WorkOS Organization
Log in to the dashboard and hop over to the Organizations tab to create and organization
![Create an Organization](/img/guides/auth-workos/workos-create-organization.png)
### Obtain the Client ID and configure Redirect URI
Head over to the Configuration tab and configure the redirect URI.The redirect URI should look like `https://<project-ref>.supabase.co/auth/v1/callback`
Note that this is distinct from the redirect URI referred to in the Supabase dashboard
![Fetch Client ID and configure Redirect URI](/img/guides/auth-workos/workos-clientid-redirect-uri.png)
### Obtain the WorkOS Secret
Head over to the API Keys page and obtain the secret key.
![WorkOS Secret Key](/img/guides/auth-workos/workos-secret-key.png)
### Connect a WorkOS Supported Identity Provider
Set up the identity provider by visiting the setup link.
![Visiting the setup link](/img/guides/auth-workos/workos-setup-identity-provider.png)
You can pick between any one of the many identity providers that WorkOS supports.
### Add your WorkOS credentials into your Supabase Project
- Go to your [Supabase Project Dashboard](https://app.supabase.com)
- In the left sidebar, click the `Authentication` icon (near the top)
- Click `Settings` from the list to go to the `Authentication Settings` page
- Under `External OAuth Providers` turn `WorkOS Enabled` to ON
- Enter the `Client ID`, `Secret`, and `WorkOS URL` saved in the previous steps. The ``WorkOS URL` setting should be set to https://api.workos.com/
- Click `Save`
### Add login code to your client app
The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). Note that you only need to include one of the three parameters: `connection`, `organization`, and `provider`.
You can refer to the [WorkOS Documentation](https://workos.com/docs/reference/sso/authorize/) to learn more about the different methods.
```js
const { user, session, error } = await supabase.auth.signIn(
{
provider: 'workos',
},
{
connection: '<your_connection>',
organization: '<your_organization',
provider: '<your_provider>',
}
)
```
Add a function which you can call from a button, link, or UI element.
```js
async function signInWithWorkOS() {
const { user, session, error } = await supabase.auth.signIn(
{
provider: 'workos',
},
{
connection: '<your_connection>',
organization: '<your_organization',
provider: '<your_provider>',
}
)
}
```
To log out:
```js
async function signout() {
const { error } = await supabase.auth.signOut()
}
```
## Resources
- [WorkOS Documentation](https://workos.com/docs/sso/guide)