Files
linux-odyssey/server/src/auth/oauthVerify.js
T

28 lines
664 B
JavaScript

import { User } from '@linux-odyssey/models'
export default async function oauthVerify(provider, profile, query, cb) {
process.nextTick(async () => {
const email = profile.emails[0]?.value
if (!email) {
return cb(new Error('No email found'))
}
let user = await User.findOne(query)
if (!user) {
user = await User.findOne({ email })
if (!user) {
const newUser = { email }
newUser[provider] = profile
return cb(null, { newUser })
}
user[provider] = {
id: profile.id,
displayName: profile.displayName,
}
await user.save()
}
return cb(null, user)
})
}