feat(auth): migrate WhatsApp OTP to otp.wibudev.com with API Key authentication
- Create new wa-service.ts helper library - sendWhatsAppOtp(): Send OTP via otp.wibudev.com with Bearer token auth - sendWhatsAppOtpLegacy(): Deprecated legacy function for backward compat - Proper error handling and response validation - Update all auth routes to use new WA service: - login/route.ts: Use sendWhatsAppOtp for login OTP - register/route.ts: Use sendWhatsAppOtp for registration OTP - resend/route.ts: Use sendWhatsAppOtp for resend OTP - send-otp-register/route.ts: Use sendWhatsAppOtp for registration - Add environment variables to .env.local: - WIBU_WA_API_KEY: JWT token for authentication - WIBU_WA_API_URL: https://otp.wibudev.com Benefits: ✓ Secure authentication with JWT API Key ✓ Centralized WA service for all OTP sending ✓ Better error handling and logging ✓ Consistent API response format ✓ Easy to maintain and extend API Key Info: - Name: website-desa-darmasaba - Description: untuk website desa darmasaba - Expiration: Feb 12, 2116 - Issued: Mar 05, 2026 Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@@ -2,6 +2,7 @@ import { NextResponse } from 'next/server';
|
||||
import { cookies } from 'next/headers';
|
||||
import prisma from '@/lib/prisma';
|
||||
import { randomOTP } from '../_lib/randomOTP';
|
||||
import { sendWhatsAppOtp } from '@/lib/wa-service';
|
||||
|
||||
export async function POST(req: Request) {
|
||||
try {
|
||||
@@ -24,12 +25,18 @@ export async function POST(req: Request) {
|
||||
const otpNumber = Number(codeOtp);
|
||||
|
||||
const waMessage = `Website Desa Darmasaba - Kode verifikasi Anda: ${codeOtp}`;
|
||||
const waUrl = `https://wa.wibudev.com/code?nom=${encodeURIComponent(nomor)}&text=${encodeURIComponent(waMessage)}`;
|
||||
const waRes = await fetch(waUrl);
|
||||
const waData = await waRes.json();
|
||||
|
||||
if (waData.status !== "success") {
|
||||
return NextResponse.json({ success: false, message: 'Gagal mengirim OTP via WhatsApp' }, { status: 400 });
|
||||
// Send OTP via WhatsApp using authenticated API
|
||||
const waResult = await sendWhatsAppOtp({
|
||||
nomor,
|
||||
message: waMessage,
|
||||
});
|
||||
|
||||
if (!waResult.success) {
|
||||
return NextResponse.json(
|
||||
{ success: false, message: waResult.message || 'Gagal mengirim OTP via WhatsApp', debug: waResult.data },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// ✅ Simpan OTP ke database
|
||||
|
||||
Reference in New Issue
Block a user