import { Router } from 'express'; import { AuthManager } from '../auth/index.ts'; import { resolveCredential } from '../helper/credential.ts'; export default (auth: AuthManager) => { const router = Router(); router.post('/', async (req, res) => { try { console.log('🚀 Initiating new login flow'); // เริ่ม device code flow โดยรับ overrides จาก headers (tenantId, clientId, scopes) const credential = resolveCredential(req); if (!credential.tenantId) { throw new Error('tenantId is required'); } const deviceCodeInfo = await auth.initiateDeviceCodeFlow(credential as Required); // ส่ง device code info และ sessionId กลับไปให้ client res.json({ success: true, message: 'Please complete authentication using the device code', sessionId: deviceCodeInfo.sessionId, deviceCode: deviceCodeInfo.userCode, verificationUrl: deviceCodeInfo.verificationUrl, instructions: deviceCodeInfo.message, }); } catch (err: any) { console.error('Login error:', err.message); res.status(500).json({ error: err.message }); } }); return router; };