Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 2x 2x 7x 5x 5x 1x 1x 2x 1x 1x 1x 2x 2x 2x | import { AppMessage, AppUser, AppUserLoginCredentials, AppUserLogoutCredentials, AppUserName } from '@app/backend-interfaces';
import { Injectable } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { IAuthPayload, IAuthService } from '../interfaces/auth.interface';
export const AUTH_SERVICE_TOKEN = Symbol('AUTH_SERVICE_TOKEN');
@Injectable()
export class AppAuthService implements IAuthService {
constructor(private readonly jwt: JwtService) {}
public generateJWToken(payload: IAuthPayload) {
const token = this.jwt.sign(payload);
return token;
}
public decodeJWToken(token: string) {
const result = this.jwt.decode(token);
return result;
}
public ping(): AppMessage {
return new AppMessage({
message: `${AppAuthService.name} is online.`,
});
}
public login(credentials: AppUserLoginCredentials): AppUser {
return this.authenticateAndReturnProfile(credentials);
}
public logout(credentials: AppUserLogoutCredentials): AppMessage {
return new AppMessage({ message: `success for token ${credentials.token}` });
}
public signup(credentials: AppUserLoginCredentials): AppUser {
return this.authenticateAndReturnProfile(credentials);
}
private authenticateAndReturnProfile(credentials: AppUserLoginCredentials): AppUser {
const name = new AppUserName({
first: '',
last: '',
});
const profile = new AppUser({
id: '0',
name,
token: this.generateJWToken({
email: credentials.email,
name: `${name.first} ${name.last}`,
}),
});
return profile;
}
}
|