| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import { PhoneLoginDto } from './dto/login.dto'
- import { Injectable, UnauthorizedException } from '@nestjs/common'
- import { JwtService } from '@nestjs/jwt'
- import { UsersService } from '../users/users.service'
- import { Role } from 'src/model/role.enum'
- import { UserRegisterDto } from 'src/users/dto/user-register.dto'
- @Injectable()
- export class AuthService {
- constructor(private readonly usersService: UsersService, private readonly jwtService: JwtService) {}
- async loginByPhone(loginDto: PhoneLoginDto) {
- let user = await this.usersService.loginByPhone(loginDto.phone, loginDto.code, loginDto.invitor)
- const payload = {
- username: user.username,
- sub: user.id,
- roles: user.roles
- }
- this.usersService.updateIat(user)
- return {
- access_token: this.jwtService.sign(payload)
- }
- }
- async login(username: string, password: string) {
- let user = await this.usersService.login(username, password)
- const payload = {
- username: user.username,
- sub: user.id,
- roles: user.roles
- }
- this.usersService.updateIat(user)
- return {
- access_token: this.jwtService.sign(payload)
- }
- }
- async loginAdmin(username: string, password: string) {
- let user = await this.usersService.login(username, password)
- if (!user.roles.includes(Role.Admin)) {
- throw new UnauthorizedException('Permission denied')
- }
- const payload = {
- username: user.username,
- sub: user.id,
- roles: user.roles
- }
- this.usersService.updateIat(user)
- return {
- access_token: this.jwtService.sign(payload)
- }
- }
- async getToken(id: number) {
- let user = await this.usersService.findById(id)
- const payload = {
- username: user.username,
- sub: user.id,
- roles: user.roles
- }
- return {
- access_token: this.jwtService.sign(payload)
- }
- }
- async register(register: UserRegisterDto) {
- return await this.usersService.register(register)
- }
- }
|