Learn how to configure LibreChat to use Google for user authentication.
Create a Google Application
- Visit: Google Cloud Console and open the
Console
- Create a New Project and give it a name
Google Application Configuration
- Select the project you just created and go to
APIs and Services
- Select
Credentialsand clickCONFIGURE CONSENT SCREEN
- Select
Externalthen clickCREATE
- Fill in your App information
Note: You can get a logo from your LibreChat folder here:
docs\assets\favicon_package\android-chrome-192x192.png
- Configure your
App domainand add yourDeveloper contact informationthen clickSAVE AND CONTINUE
- Configure the
Sopes- Add
email,profileandopenid - Click
UPDATEandSAVE AND CONTINUE
- Add
-
Click
SAVE AND CONTINUE -
Review your app and go back to dashboard
-
Go back to the
Credentialstab, click on+ CREATE CREDENTIALSand selectOAuth client ID
- Select
Web applicationand give it a name
- Configure the
Authorized JavaScript origins, you can add both your domain and localhost if you desire- Example for localhost:
http://localhost:3080 - Example for a domain:
https://example.com
- Example for localhost:
- Add a valid
Authorized redirect URIs- Example for localhost:
http://localhost:3080/oauth/google/callback - Example for a domain:
https://example.com/oauth/google/callback - If using the Admin Panel:
https://example.com/api/admin/oauth/google/callback
- Example for localhost:
.env Configuration
- Click
CREATEand copy yourClient IDandClient secret
- Add them to your
.envfile:
DOMAIN_CLIENT=https://your-domain.com # use http://localhost:3080 if not using a custom domain
DOMAIN_SERVER=https://your-domain.com # use http://localhost:3080 if not using a custom domain
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_CALLBACK_URL=/oauth/google/callback- Save the
.envfile
Note: If using docker, run
docker compose up -dto apply the .env configuration changes
Admin Panel Sessions
The Admin Panel uses the same GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET, but its callback is ${DOMAIN_SERVER}/api/admin/oauth/google/callback. Its Google flow requests offline access and consent so an expired LibreChat admin token can be refreshed. LibreChat rechecks the user's identity, ban state, allowed domain, tenant, and current admin access on every refresh.
How is this guide?