mirror of
https://github.com/supabase/supabase.git
synced 2026-10-07 10:25:06 +03:00
added gitlab login
This commit is contained in:
1 parent
123d45bd54
commit
cbcc295416
2 files changed
+101
-2
No files matched your search
@@ -0,0 +1,90 @@
|
||||
---
|
||||
id: auth-gitlab
|
||||
title: "GitLab Login"
|
||||
description: Setting up GitLab Login
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
## Description
|
||||
|
||||
How to set up GitLab Login
|
||||
|
||||
The setup process consists of three parts:
|
||||
|
||||
* Create and configure a GitLab Application on [GitLab](https://gitlab.com)
|
||||
* Add your GitLab Application keys to your [Supabase Project](https://supabase.io)
|
||||
* Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js)
|
||||
|
||||
## Steps
|
||||
|
||||
### Log into your [GitLab](https://gitlab.com) Account
|
||||
|
||||
Once logged into *"GitLab"*:
|
||||
|
||||
### Create your GitLab Application
|
||||
|
||||
- Click on your profile logo (avatar) in the top-right corner
|
||||
- Select Edit profile.
|
||||
- In the left sidebar, select Applications.
|
||||
- Enter your app information
|
||||
- Enter the name of the application
|
||||
- In the "Redirect URI" box, type the callback URL of your app.
|
||||
- Your "Redirect URI" ("Callback URL") looks like this:
|
||||
- `https://<project-ref>.supabase.co/auth/v1/callback`
|
||||
- where `https://<project-ref>.supabase.co` is your Supabase Project API URL
|
||||
- Go to your [Supasebase Project Dashboard](https://supabase.io)
|
||||
- Click on the "Settings" icon at the bottom of the left sidebar
|
||||
- Click on "API" in the list
|
||||
- Under Config / URL you'll find your API URL, you can click "Copy" to copy it to the clipboard
|
||||
- Now just add "/auth/v1/callback" to the end of that to get your full "OAauth Redirect URI"
|
||||
- Enter this in the "Redirect URI" box
|
||||
- Check the box next to "Confidential" (make sure it is checked)
|
||||
- Check the scope named `read_user` (this is the only required scope)
|
||||
- Click "Save Application" at the bottom
|
||||
- Copy and save your "Application ID" (`client_id`) and "Secret" (`client_secret`) which you'll need later
|
||||
|
||||
### Enter your GitLab `client_id` and `client_secret` into your Supabase Project
|
||||
|
||||
- Go to your [Supasebase Project Dashboard](https://supabase.io)
|
||||
- In the left sidebar, click the "Authentication" icon (near the top)
|
||||
- Click "Settings" from the list to go to the "Authentication Settings" page
|
||||
- Enter the final (hosted) URL of your app under "Site URL" (this is important)
|
||||
- Under "External OAuth Providers" turn "GitLab Enabled" to ON
|
||||
- Enter your `client_id` and `client_secret` saved in the previous step
|
||||
- Click "Save"
|
||||
|
||||
### Add login code to your client app
|
||||
|
||||
The JavaScript client code is documented here: [Supabase OAauth Client Code](https://supabase.io/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers)
|
||||
|
||||
```js
|
||||
const { user, session, error } = await supabase.auth.signIn({
|
||||
provider: 'gitlab'
|
||||
})
|
||||
```
|
||||
|
||||
Just put this code in a function and create a button or a link or any other UI element to call the function.
|
||||
|
||||
```js
|
||||
function signInWithGitLab() {
|
||||
const { user, session, error } = await supabase.auth.signIn({
|
||||
provider: 'gitlab'
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
To log out:
|
||||
|
||||
```js
|
||||
function signout() {
|
||||
const { error } = await supabase.auth.signOut();
|
||||
}
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
* [Supabase Account - Free Tier OK](https://supabase.io)
|
||||
* [Supabase JS Client](https://github.com/supabase/supabase-js)
|
||||
* [GitLab Account](https://gitlab.com)
|
||||
+11
-2
@@ -109,7 +109,9 @@ module.exports = {
|
||||
label: 'Database',
|
||||
collapsed: false,
|
||||
items: [
|
||||
'guides/database/arrays', 'guides/database/json', 'guides/database/password-reset',
|
||||
'guides/database/arrays',
|
||||
'guides/database/json',
|
||||
'guides/database/password-reset',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Auth Deep Dive',
|
||||
@@ -122,7 +124,14 @@ module.exports = {
|
||||
type: 'category',
|
||||
label: 'Auth',
|
||||
collapsed: false,
|
||||
items: ['guides/auth/auth-facebook', 'guides/auth/auth-google', 'guides/auth/auth-github', 'guides/auth/auth-apple', 'guides/auth/auth-bitbucket'],
|
||||
items: [
|
||||
'guides/auth/auth-facebook',
|
||||
'guides/auth/auth-google',
|
||||
'guides/auth/auth-github',
|
||||
'guides/auth/auth-apple',
|
||||
'guides/auth/auth-bitbucket',
|
||||
'guides/auth/auth-gitlab',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
|
||||
Reference in new issue
Block a user