forked from oat/in-the-database-2
discord auth bay bee
this just, , tells you what your username is right now but will definetly be used later on to login
This commit is contained in:
parent
6ff85af711
commit
758e2ef7e2
6 changed files with 69 additions and 1 deletions
40
src/auth.ts
Normal file
40
src/auth.ts
Normal file
|
@ -0,0 +1,40 @@
|
|||
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}`
|
||||
}
|
||||
});
|
||||
|
||||
res.send(`hi ${userInfo.data.username}#${userInfo.data.discriminator}`);
|
||||
} catch(err) {
|
||||
res.send(`whoooops<br>${err}`);
|
||||
}
|
||||
} else {
|
||||
res.send('https://discord.com/api/oauth2/authorize?client_id=750952563079250012&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fdiscordauth&response_type=code&scope=identify');
|
||||
}
|
||||
});
|
||||
}
|
|
@ -8,6 +8,10 @@ import * as format from './lib/format';
|
|||
import { File } from './schema';
|
||||
|
||||
import * as upload from './upload';
|
||||
import * as auth from './auth';
|
||||
|
||||
// .env stuff
|
||||
require('dotenv').config();
|
||||
|
||||
const config = JSON.parse(fs.readFileSync('./config/config.json', {encoding: 'utf8'}));
|
||||
|
||||
|
@ -55,6 +59,7 @@ db.then(() => {
|
|||
app.set('logger', logger);
|
||||
|
||||
upload.run(app);
|
||||
auth.run(app);
|
||||
|
||||
app.get('/list', async (req, res) => { // only for testing
|
||||
const docs = await File.find({});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue