feat(devices): add registration, heartbeat, linking, and device tokens

This commit is contained in:
2026-01-09 10:30:00 +00:00
parent 4fa525d8db
commit d51bac5a66
6 changed files with 462 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import type { NextFunction, Request, Response } from 'express';
import { verifyDeviceToken } from '../utils/device-token';
const extractBearerToken = (authorizationHeader?: string): string | null => {
if (!authorizationHeader || !authorizationHeader.startsWith('Bearer ')) {
return null;
}
return authorizationHeader.slice('Bearer '.length).trim();
};
export const requireDeviceAuth = (req: Request, res: Response, next: NextFunction): void => {
const token = extractBearerToken(req.headers.authorization);
if (!token) {
res.status(401).json({ message: 'Missing bearer device token' });
return;
}
const payload = verifyDeviceToken(token);
if (!payload) {
res.status(401).json({ message: 'Invalid device token' });
return;
}
req.deviceAuth = payload;
next();
};