Browse Source

fix(api): fix signin with google not updating user data properly

pull/19/head
isra el 2 years ago
parent
commit
479bede1b5
  1. 29
      api/src/auth/auth.service.ts
  2. 11
      api/src/users/users.service.ts

29
api/src/auth/auth.service.ts

@ -65,23 +65,24 @@ export class AuthService {
user = await this.usersService.create({ user = await this.usersService.create({
name, name,
email, email,
googleId,
avatar: picture,
lastLoginAt: new Date(),
}) })
} else {
}
if (user.googleId !== googleId) {
user.googleId = googleId user.googleId = googleId
}
if (!user.name) {
user.name = name
}
if (!user.avatar) {
user.avatar = picture
}
user.lastLoginAt = new Date()
await user.save()
if (user.name !== name) {
user.name = name
} }
if (user.avatar !== picture) {
user.avatar = picture
}
user.lastLoginAt = new Date()
await user.save()
const payload = { email: user.email, sub: user._id } const payload = { email: user.email, sub: user._id }
return { return {
accessToken: this.jwtService.sign(payload), accessToken: this.jwtService.sign(payload),
@ -107,9 +108,11 @@ export class AuthService {
const user = await this.usersService.create({ const user = await this.usersService.create({
...userData, ...userData,
password: hashedPassword, password: hashedPassword,
lastLoginAt: new Date(),
}) })
user.lastLoginAt = new Date()
await user.save()
const payload = { email: user.email, sub: user._id } const payload = { email: user.email, sub: user._id }
return { return {

11
api/src/users/users.service.ts

@ -15,8 +15,15 @@ export class UsersService {
return await this.userModel.find() return await this.userModel.find()
} }
async create(userData: any) {
const { name, email, password } = userData
async create({
name,
email,
password,
}: {
name: string
email: string
password?: string
}) {
if (await this.findOne({ email })) { if (await this.findOne({ email })) {
throw new HttpException( throw new HttpException(
{ {

Loading…
Cancel
Save