import { User } from './schema'; import * as uuid from 'uuid'; const API_ENDPOINT = 'https://discord.com/api/v6'; const axios = require('axios').default; export function run(app) { app.get('/discordauth', async (req, res) => { const code = req.query.code; if (code) { try { const data = new URLSearchParams({ client_id: process.env.DISCORD_OAUTH_CLIENTID, client_secret: process.env.DISCORD_OAUTH_CLIENTSECRET, grant_type: 'authorization_code', code: code, redirect_uri: 'http://localhost:8080/discordauth', scope: 'identify' }); const postRes = await axios.post(`${API_ENDPOINT}/oauth2/token`, data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }); const userInfo = await axios.get(`${API_ENDPOINT}/users/@me`, { headers: { authorization: `${postRes.data.token_type} ${postRes.data.access_token}` } }); const users = await User.find({id: userInfo.id}); let userUuid = ''; if (users.length === 0) { const newUser = new User({ id: userInfo.id, createdAt: new Date(), username: userInfo.data.username, discriminator: userInfo.data.discriminator, avatar: userInfo.data.avatar, uuid: uuid.v4(), }); userUuid = newUser.get('uuid'); newUser.save(); } else { userUuid = users[0].get('uuid'); } req.session!.discord = userInfo.data; req.session!.uuid = userUuid; res.send(`hi ${userInfo.data.username}#${userInfo.data.discriminator}

ur useruuid is ${userUuid}`); } catch(err) { res.send(`whoooops
${err}`); } } else { res.send(`Click here!!`); } }); }