https://github.com/l1ttps/nestjs-fingerprint
Server-side fingerprinting library for framework NestJs
https://github.com/l1ttps/nestjs-fingerprint
authentication cookie fingerprinting nestjs
Last synced: 6 months ago
JSON representation
Server-side fingerprinting library for framework NestJs
- Host: GitHub
- URL: https://github.com/l1ttps/nestjs-fingerprint
- Owner: l1ttps
- Created: 2023-08-30T02:51:58.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-27T14:45:24.000Z (7 months ago)
- Last Synced: 2025-03-29T08:03:00.753Z (6 months ago)
- Topics: authentication, cookie, fingerprinting, nestjs
- Language: TypeScript
- Homepage: https://nestjs-fingerprint.vercel.app
- Size: 1.13 MB
- Stars: 67
- Watchers: 2
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
[](https://www.npmjs.com/package/nestjs-fingerprint)
[](https://www.npmjs.com/package/nestjs-fingerprint)**Server-side fingerprinting library for framework NestJs**
## Features
- Generate fingerprint for each browser or device
- Function decorator support
- Auto set cookie## Installation
```
npm install --save nestjs-fingerprintor
yarn add nestjs-fingerprint
```## Usage
app.module.ts
```typescript
import { Module } from '@nestjs/common';
import { NestjsFingerprintModule } from 'nestjs-fingerprint';
import { AppController } from './app.controller';
import { AppService } from './app.service';@Module({
imports: [
NestjsFingerprintModule.forRoot({
params: ['headers', 'userAgent', 'ipAddress'],
cookieOptions: {
name: 'your_cookie_name', // optional
httpOnly: true, // optional
},
}),
],
controllers: [AppController],
providers: [AppService],
})export class AppModule {}
```app.controller.ts
```typescript
import { Controller, Get } from '@nestjs/common';
import { Fingerprint, IFingerprint, RealIp } from 'nestjs-fingerprint';@Controller()
export class AppController {@Get()
getFingerprint(@Fingerprint() fp: IFingerprint): IFingerprint {
return fp;
}@Get('my-ip-address')
getMyIpAddress(@RealIp() ipAddress: string): string {
return ipAddress;
}
}```
Fingerprint example:
```json
{
"id": "79c0678d8672fafb932a97a1368d7bf3",
"headers": {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"language": "en-US,en;q=0.9"
},
"userAgent": {
"browser": {
"family": "Chrome",
"version": "xxx"
},
"device": {
"family": "Other",
"version": "0"
},
"os": {
"family": "Windows",
"major": "10",
"minor": "0"
}
},
"ipAddress": {
"value": "xxx.xxx.xxx.xxx"
}
}
```
* [Go](https://github.com/anhnmt/go-fingerprint)
## LicenseMIT © [l1ttps](https://github.com/l1ttps)