mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
/* eslint-disable no-console */
|
|
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
import { User as DbUser } from '@entity/User'
|
|
|
|
import { decode } from '@/auth/JWT'
|
|
|
|
export const gmsWebhook = async (req: any, res: any): Promise<void> => {
|
|
console.log('GMS Hook received', req.query)
|
|
const { token } = req.query
|
|
|
|
if (!token) {
|
|
console.log('gmsWebhook: missing token')
|
|
res.status(400).json({ message: 'false' })
|
|
return
|
|
}
|
|
const payload = await decode(token)
|
|
console.log('gmsWebhook: decoded token=', payload)
|
|
if (!payload) {
|
|
console.log('gmsWebhook: invalid token')
|
|
res.status(400).json({ message: 'false' })
|
|
return
|
|
}
|
|
const user = await DbUser.findOne({ where: { gradidoID: payload.gradidoID } })
|
|
if (!user) {
|
|
console.log('gmsWebhook: missing user')
|
|
res.status(400).json({ message: 'false' })
|
|
return
|
|
}
|
|
console.log('gmsWebhook: authenticate user=', user.gradidoID, user.firstName, user.lastName)
|
|
console.log('gmsWebhook: authentication successful')
|
|
res.status(200).json({ userUuid: user.gradidoID })
|
|
}
|