Spaces:
Runtime error
Runtime error
--- | |
title: Authentication | |
description: Learn how AgentGPT handles authentication in different development modes and with various providers. | |
icon: "lock" | |
--- | |
# Authentication in Development Mode | |
In development mode, your application uses a simplified version of authentication for ease of testing and debugging. This is usually not secure and should not be used in a production environment. | |
In your `.env` file, you can switch between development and production environments using the `NODE_ENV` variable. When it's set to "development", the application runs in development mode. | |
To make the application use the insecure, simple version of authentication, set the `NEXTAUTH_SECRET` variable in your `.env` file to a simple, insecure value (e.g., "changeme"). | |
## Accessing Provider Secret Keys | |
To enable different types of OAuth authentication, you will need to acquire secret keys from the respective providers. Below are the general instructions for getting these secret keys: | |
<Tabs> | |
<Tab title="Google"> | |
Create a project in the Google Cloud Console. | |
Go to "Credentials", click on "Create Credentials" and choose "OAuth client ID". | |
Configure your OAuth consent screen and application type, then click "Create". | |
Your client ID and secret will be displayed. | |
For more detailed instructions, visit Google's official [OAuth 2.0 setup guide](https://developers.google.com/identity/protocols/oauth2). | |
</Tab> | |
<Tab title="GitHub"> | |
Go to your GitHub settings. | |
Click on "Developer settings". | |
Click on "OAuth Apps" and then "New OAuth App". | |
Fill in the required information and click "Register Application". | |
The client ID and secret will be displayed on the next page. | |
You can find more detailed instructions in the [GitHub OAuth documentation](https://docs.github.com/en/developers/apps/building-oauth-apps). | |
</Tab> | |
<Tab title="Discord"> | |
Go to the Discord Developer Portal. | |
Click on "New Application". | |
Give your application a name and click "Create". | |
Go to the "OAuth2" page in your application settings. | |
Under "Redirects", add your redirect URIs. | |
Click on "Save Changes". | |
The client ID can be found on the "General Information" page, and the secret can be found on the "OAuth2" page. | |
For more detailed instructions, visit the [Discord OAuth2 documentation](https://discord.com/developers/docs/topics/oauth2). | |
</Tab> | |
</Tabs> | |
## Enabling Non-Local Authentication | |
The `.env` file includes several placeholders for provider client IDs and secrets. Replace these placeholders with the keys obtained from the respective providers: | |
- For Google, replace the "\*\*\*" placeholders for `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` with the client ID and secret obtained from Google. | |
- For GitHub, replace the "\*\*\*" placeholders for `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` with the client ID and secret obtained from GitHub. | |
- For Discord, replace the "\*\*\*" placeholders for `DISCORD_CLIENT_ID` and `DISCORD_CLIENT_SECRET` with the client ID and secret obtained from Discord. | |
Once these changes are made, your application will be set up to use OAuth authentication with these providers. To switch from local authentication to OAuth authentication, change the `NEXTAUTH_URL` variable in your `.env` file to the URL where your application is hosted. This cannot be localhost. | |