feat(auth): implement Google and Zalo OAuth backend strategies
Add complete OAuth2 authentication flow for Google and Zalo providers: - OAuthService: handles account linking (by email/phone), new user creation for OAuth-only accounts, and JWT token generation - GoogleOAuthStrategy: passport-google-oauth20 integration - ZaloOAuthStrategy: custom OAuth2 implementation using Zalo's API (authorization URL generation, code exchange, user info fetch) - OAuthController: redirect and callback endpoints for both providers with httpOnly cookie-based token management - Unit tests for OAuthService (7 tests), GoogleOAuthStrategy (4 tests), and ZaloOAuthStrategy (7 tests) - OAuth env vars added to .env.example and env-validation warnings Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -22,6 +22,10 @@ const REQUIRED_WHEN_USED: ReadonlyMap<string, string> = new Map([
|
||||
['ZALOPAY_KEY2', 'ZaloPay payments'],
|
||||
['MINIO_ACCESS_KEY', 'Media storage'],
|
||||
['MINIO_SECRET_KEY', 'Media storage'],
|
||||
['GOOGLE_CLIENT_ID', 'Google OAuth'],
|
||||
['GOOGLE_CLIENT_SECRET', 'Google OAuth'],
|
||||
['ZALO_APP_ID', 'Zalo OAuth'],
|
||||
['ZALO_APP_SECRET', 'Zalo OAuth'],
|
||||
]);
|
||||
|
||||
export function validateEnv(): void {
|
||||
|
||||
Reference in New Issue
Block a user