Files
maps-saas/apps/api/src/auth/device-auth.controller.ts
T

29 lines
1.2 KiB
TypeScript

import { Controller, Post, Body, HttpCode, HttpStatus } from '@nestjs/common';
import { ApiTags, ApiOperation, ApiResponse } from '@nestjs/swagger';
import { AuthService } from './auth.service';
import { ProvisionDeviceKeyDto } from './dto/provision-device-key.dto';
@ApiTags('auth')
@Controller('auth')
export class DeviceAuthController {
constructor(private readonly authService: AuthService) {}
@Post('device-provision')
@HttpCode(HttpStatus.OK)
@ApiOperation({
summary: 'Provision or retrieve a dedicated API key for a mobile device via hardware fingerprint',
description: 'Enables completely frictionless, zero-OTP mobile onboarding by issuing an isolated consumer API key tied directly to physical device telemetry.',
})
@ApiResponse({ status: 200, description: 'Dedicated device API key issued successfully' })
async provisionDeviceKey(@Body() dto: ProvisionDeviceKeyDto) {
return this.authService.getOrProvisionDeviceKey(dto);
}
@Post('device-key')
@HttpCode(HttpStatus.OK)
@ApiOperation({ summary: 'Intuitive alias for device-provision' })
async getDeviceKey(@Body() dto: ProvisionDeviceKeyDto) {
return this.authService.getOrProvisionDeviceKey(dto);
}
}