pos-be/src/core/sessions/domain/providers/user.ts

32 lines
1.1 KiB
TypeScript

import { Inject, Injectable, Request, Scope } from '@nestjs/common';
import { UsersSession } from '../entities/user-sessions.interface';
import { REQUEST } from '@nestjs/core';
import { SessionService } from '../services/session.service';
@Injectable({ scope: Scope.REQUEST })
export class UserProvider {
constructor(
@Inject(REQUEST) private readonly request: Request,
private readonly session: SessionService,
) {}
get user(): UsersSession {
/**
* There is no Token validation here
* Because, the token should be available and active here
*
* If this function throw an error
* rather you trying to call user from function that use `@Unprotected` decorator
* or you forget to set scope to `Scope.REQUEST` from app.module.
*
* Please check the token validation at JWTGuard (core/domain/jwt.guard.ts)
*/
const [, token] = this.request.headers['authorization'].split(' ');
return this.session.verifyToken(token);
}
get token(): string {
const [, token] = this.request.headers['authorization'].split(' ');
return token;
}
}