32 lines
866 B
TypeScript
32 lines
866 B
TypeScript
import { Injectable, Logger } from '@nestjs/common';
|
|
import { JwtService } from '@nestjs/jwt';
|
|
import { JwtPayloadDto } from '../../api-v1/auth/dto/jwt-payload.dto';
|
|
import { jwtSecret } from '../../constants/jwt.constant';
|
|
|
|
@Injectable()
|
|
export class ImmichJwtService {
|
|
constructor(private jwtService: JwtService) {}
|
|
|
|
public async generateToken(payload: JwtPayloadDto) {
|
|
return this.jwtService.sign({
|
|
...payload,
|
|
});
|
|
}
|
|
|
|
public async validateToken(accessToken: string) {
|
|
try {
|
|
const payload = await this.jwtService.verify(accessToken, { secret: jwtSecret });
|
|
return {
|
|
userId: payload['userId'],
|
|
status: true,
|
|
};
|
|
} catch (e) {
|
|
Logger.error('Error validating token from websocket request', 'ValidateWebsocketToken');
|
|
return {
|
|
userId: null,
|
|
status: false,
|
|
};
|
|
}
|
|
}
|
|
}
|