4.1 KiB
OAuth App Setup Guide
This document explains how to register OAuth applications with VK and Yandex for the DM Dashboard authentication system.
1. VK ID Registration
Follow these steps to create a VK ID application for user authentication.
1.1. Start Registration
- Go to the VK ID for Business portal: https://id.vk.com/about/business/go/
- Sign in with your VK account
- Navigate to the applications section and click "Create application"
1.2. Configure Platform
Select "Web" as the platform type for your application.
1.3. Add Redirect URIs
Add the following redirect URIs to your application settings:
http://localhost:4321/api/auth/callback/vk
For production, also add:
https://your-domain.com/api/auth/callback/vk
1.4. Request Scopes
Ensure the following scopes are requested during authentication:
profile- Access to basic user profile informationemail- Access to user's email address
1.5. Copy Credentials
After creating the application:
- Copy the Client ID (Application ID)
- Copy the Client Secret (Secure key)
- Paste both values into your
.envfile:
VK_CLIENT_ID=your_vk_client_id
VK_CLIENT_SECRET=your_vk_client_secret
2. Yandex OAuth Registration
Follow these steps to create a Yandex OAuth application for user authentication.
2.1. Start Registration
- Go to the Yandex OAuth portal: https://oauth.yandex.com/
- Sign in with your Yandex account
- Click "Register a new client" or "Create application"
2.2. Configure Platform
Select "Web services" as the application type.
2.3. Add Redirect URIs
Add the following callback URL to your application settings:
http://localhost:4321/api/auth/callback/yandex
For production, also add:
https://your-domain.com/api/auth/callback/yandex
2.4. Request Scopes
Add the following access permissions (scopes):
login:email- Access to user's email addresslogin:info- Access to basic user information (name, etc.)login:avatar- Access to user's avatar image
2.5. Copy Credentials
After registering the application:
- Copy the Client ID (also called Application ID)
- Copy the Client Secret (also called Password)
- Paste both values into your
.envfile:
YANDEX_CLIENT_ID=your_yandex_client_id
YANDEX_CLIENT_SECRET=your_yandex_client_secret
3. Environment Variables
The following environment variables are required for OAuth authentication:
| Variable | Description | Source |
|---|---|---|
VK_CLIENT_ID |
VK application ID | VK ID admin panel |
VK_CLIENT_SECRET |
VK secure key | VK ID admin panel |
YANDEX_CLIENT_ID |
Yandex application ID | Yandex OAuth portal |
YANDEX_CLIENT_SECRET |
Yandex application password | Yandex OAuth portal |
DATABASE_URL |
PostgreSQL connection string | Your database setup |
JWT_SECRET |
Secret key for JWT token signing | Generate a random string |
3.1. Generate a JWT Secret
Generate a secure random string for JWT signing:
openssl rand -base64 32
Copy the output and set it as JWT_SECRET in your .env file.
4. Testing OAuth Locally
After completing registration and setting up environment variables, test the login flow.
4.1. Start the Development Server
npm run dev
4.2. Test VK Login
- Open http://localhost:4321 in your browser
- Click "Sign in with VK"
- You should be redirected to VK for authorization
- After granting permissions, you should be redirected back to the dashboard
- Check that your user profile is created in the database
4.3. Test Yandex Login
- Open http://localhost:4321 in your browser
- Click "Sign in with Yandex"
- You should be redirected to Yandex for authorization
- After granting permissions, you should be redirected back to the dashboard
- Check that your user profile is created in the database
4.4. Troubleshooting
If authentication fails:
- Verify redirect URIs match exactly (including protocol and port)
- Check that all required scopes are granted
- Review server logs for OAuth callback errors
- Ensure environment variables are loaded correctly