# Kinde Authentication Setup
This document provides instructions for setting up Kinde authentication in your Next.js application.
## Prerequisites
1. Create a Kinde account at [https://kinde.com](https://kinde.com)
2. Create a new project in your Kinde dashboard
3. Configure your application settings
## Configuration Steps
### 1. Environment Variables
Update the `.env.local` file with your actual Kinde credentials:
```bash
# Kinde Configuration
KINDE_CLIENT_ID=your_actual_kinde_client_id
KINDE_CLIENT_SECRET=your_actual_kinde_client_secret
KINDE_ISSUER_URL=https://your_subdomain.kinde.com
KINDE_SITE_URL=http://localhost:3000
KINDE_POST_LOGOUT_REDIRECT_URL=http://localhost:3000
KINDE_POST_LOGIN_REDIRECT_URL=http://localhost:3000/files
```
### 2. Kinde Dashboard Setup
1. Go to your Kinde dashboard
2. Navigate to Settings > Applications
3. Select your application
4. Under "Callback URLs", add:
- `http://localhost:3000/api/auth/kinde_callback`
5. Under "Logout URLs", add:
- `http://localhost:3000`
6. Under "Allowed Logout URLs", add:
- `http://localhost:3000`
### 3. Authentication Flow
The application now includes:
- **Login**: `/api/auth/login`
- **Register**: `/api/auth/register`
- **Logout**: `/api/auth/logout`
- **Callback**: `/api/auth/callback`
### 4. Usage in Components
You can use the authentication components in your pages:
```tsx
import { LoginButton, LogoutButton, RegisterButton } from "@/app/components/authButtons";
// In your component
```
### 5. Getting User Information
To access user information in client components:
```tsx
import { useKindeBrowserClient } from "@kinde-oss/kinde-auth-nextjs";
const { user, isLoading } = useKindeBrowserClient();
```
### 6. Server-Side Usage
For server-side components and API routes:
```tsx
import { getKindeServerSession } from "@kinde-oss/kinde-auth-nextjs/server";
const { getUser, isAuthenticated } = getKindeServerSession();
```
## Testing the Authentication
1. Start your development server: `npm run dev`
2. Visit `http://localhost:3000`
3. Click the "Login" button to test authentication
4. After successful login, you'll be redirected to `/files`
## Next Steps
- Configure production environment variables
- Set up proper domain URLs for production
- Add role-based access control if needed
- Implement additional user profile features