29 lines
1.2 KiB
TypeScript
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);
|
|
}
|
|
}
|